自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(69)
  • 收藏
  • 关注

原创 设计模式--创建型模式

设计模式

2023-04-06 17:02:44 355

原创 docker

docker

2023-03-07 16:14:54 381

原创 【线程-J.U.C】

线程 J.U.C

2023-03-03 16:10:01 466

原创 【线程安全篇】

线程安全

2023-03-03 10:16:02 340

原创 【线程基础篇】

线程基础篇

2023-02-24 17:03:26 572

原创 【mybatis】

mybatis总纲

2023-02-22 15:23:51 310

原创 工具栏专栏

BigDecimal

2021-01-25 11:27:47 87

原创 项目管理专栏

maven专栏一(一)基础知识(二)pom文件详解(三)最详细的profile的使用(四) Spring Boot Maven plugin详解

2021-01-19 16:20:39 116

原创 spring源码分析专栏

源码分析spring专栏一详解DispatcherServletDispatcherServlet初始化流程HTTP请求是如何与对应Handler的对应method映射的SpingMVC处理Http请求原理

2021-01-18 19:59:49 110

原创 spring基本使用专栏

HandlerInterceptor拦截器专栏一HandlerInterceptor拦截器的使用 (一)HandlerInterceptor拦截器的使用 (二)自定义注解HandlerInterceptor拦截器的使用 (三)@RequestBody获取请求参数解决java.io.IOException: Stream closedHandlerInterceptor拦截器的使用(四)防重复提交...

2021-01-18 19:52:42 139 1

原创 spring集成专栏

spring-kafka

2021-01-13 17:37:00 65

原创 多线程专栏

已关注的专栏多线程多线程线程安全(一)java对象头分析以及锁状态

2021-01-11 09:34:00 95 1

原创 CMS之promotion failed&concurrent mode failure

https://www.jianshu.com/p/ca1b0d4107c5

2020-12-14 15:53:08 93

原创 oracle 相关操作

查看oracle版本信息select * from sys.v_$version;

2020-12-09 16:55:22 52

原创 idea Live Template 快捷键

快捷键描述Ctrl+Alt+J使用 Live Template 包围选中代码Ctrl+J快速插入 Live Templateiter快速生成 for…in 语句inst快速生成”if instanceof”语句itco快速生成 iterator 的 for 循环itit快速生成 iterator 的 while 循环itli快速生成 list 的 for(i)循环psf快速生成“public static final” 语句...

2020-12-07 19:57:33 225

原创 maven -- 手册

链接: https://wiki.jikexueyuan.com/project/maven/

2020-11-24 17:41:58 62

原创 ImportSelector接口

AppInletConfig.classpublic class AppInletConfig implements ImportSelector { @Override public String[] selectImports(AnnotationMetadata importingClassMetadata) { return new String[]{ SwaggerConfig.class.getName()}; // 需要加载的类 }}启动类 @

2020-11-17 10:25:35 142

原创 Swagger

SwaggerPOM@ConfigurationPOM <dependency> <groupId>com.spring4all</groupId> <artifactId>swagger-spring-boot-starter</artifactId> <version>1.9.1.RELEASE</version>

2020-11-17 10:17:53 105

原创 算法-冒泡排序、选择排序、插入排序、快速排序、归并排序

排序冒泡排序选择排序插入排序快速排序归并排序排序对比数量级 1000,看不出差别数量级 1W,bubble、select、insert 的劣势已经显现,quick 、merge 依旧优秀数量级 10W,bubble、select已经跑不动了,insert的劣势已经显现,quick 、merge 依旧优秀数量级100W,insert已经跑不动了,quick 、merge 依旧优秀,quick 对比merge,略胜一筹数量级 1000W,quick 、merge 依旧优秀,quick 对比merge,略胜一筹数

2020-11-05 17:37:01 140

转载 Java 8 Stream 的 iterate 处理

https://mp.weixin.qq.com/s/GxJ5XAG7Q8GmCCgEYm-hhw

2020-10-19 11:29:44 703

原创 桶计法

对比两个字符串,其中一个字符串的字符重新排列后,能否变成另一个字符串。输入: s1 = “abc”, s2 = “bca” 输出: true输入: s1 = “abc”, s2 = “bad” 输出: false public boolean CheckPermutation(String s1, String s2) { if (s1.length() != s2.length()) { return false; }

2020-10-12 11:24:58 127

原创 栈 -- 通过两个栈 实现队列

通过两个栈 实现队列public class StackToQueue { public static void main(String[] args) { Stack<Integer> stack1 = new Stack<>(); Stack<Integer> stack2 = new Stack<>(); stack1.push(1); stack1.push(2);

2020-10-10 17:33:23 66

原创 栈 -- 验证括号是否是配对的

验证括号是否是配对的public class ValidCharacter { public static void main(String[] args) { String str = "(111)}"; System.out.println(valid(str)); } /** * 字符中的 括号 '(' ')' '{' '}' '[' ']' 必须是配对的 * * @param str * @re

2020-10-10 17:31:43 66

原创 二分法 -- 从有序数组中获取目标值的下标

从有序数组中获取目标值的下标public class GetTarget { public static void main(String[] args) { int[] num = new int[]{4, 5, 6, 7, 8, 1, 2, 3}; // 从数组 num 中获取 8 的下标 System.out.println(getTargetIndex(num, 8)); } /** * 找出target的下标

2020-10-10 17:28:33 274

原创 Java堆外内存

Java堆外内存https://www.csdn.net/gather_24/Mtjacg3sMTg4MTctYmxvZwO0O0OO0O0O.html

2020-09-11 09:55:19 83

原创 观察者模式(Observer Pattern)(发布订阅模式)

观察者模式(Observer Pattern)(发布订阅模式)JDK (Observable)代码实现定义了对象之间一对多的依赖,多个观察者对象监听一个主体对象,当主体对象发生变化时,其所有依赖者(观察者)都会收到通知并更新。JDK (Observable)代码实现定义一个传输对象 Questionpublic class Question { private String userName; private String content; public String

2020-09-09 16:13:14 62

原创 中介者模式(Mediator)/ 调停模式 --封装对象之间的交互,使原有对象之间松解耦合

中介者模式(Mediator)/ 调停模式应用场景优点:缺点:案例解决方案类结构图代码示例中介者模式 PK 桥接模式定义一个中介者来封装对象之间的交互,使原有对象之间松解耦合,可以独立改变对象之间的交互。是迪米特法则的典型应用。通过中介者,解耦系统中各层次对象的直接耦合,各层次对象对外依赖的通信 交由中介者转发。应用场景系统中对象之间的引用关系复杂,依赖关系结构混乱,可以添加中介者交互的公共行为需要改变,可以添加中介者聊天室、注册中心优点:1)对象之间松耦合2)对象之间一对多的关联变

2020-09-07 12:52:30 157

原创 解释器模式(Interpreter)-- 定义语法或表达方法

解释器模式(Interpreter)定义语法或表达方法,类似异常封装定义一个接口public interface Expression { String interpret(String context);}接口实现类,通过interpret方法,对入参进行另外一种输出public class ExpressionImpl implements Expression { private String data; public ExpressionImpl(String da

2020-09-04 12:46:37 134

原创 命令模式(Command)-- 请求与接收解耦

命令模式(Command)-- 请求与接收解耦类结构图使用场景源码中的应用类结构图Broker是命令的接受者(add)也是命令的执行者(execute)。add方法不关心execute的执行过程,execute不关心add方法的入参来于何处。Broker中除了定义list,还是可以定义其他的数据结构(比如:栈),来适应各种业务场景。定义一个 执行的接口public interface Order { void execute();}执行实现类1public class FirstO

2020-09-04 11:37:53 209

原创 设计模式 - 责任链模式(Chain of Responsibility)--链式处理

责任链模式(Chain of Responsibility)应用场景类结构图代码实现将链中的每个节点看作一个对象,各节点处理的请求都不同,且自动维护下一个节点对象。当一个请求从链首发出时,会沿着链的路径传递给每一个节点对象,知道有对象处理该请求为止。责任链模式主要是为了解耦请求和处理,客户只需要将请求发送到链上即可,无需关心处理细节,符合开闭原则。缺点:责任链太长或者处理时间太长,会影响整体性能。节点循环使用,容易造成死循环。应用场景1)有多个对象可以处理一个请求,具体哪个对象处理由运行

2020-09-04 11:20:51 225

原创 代理模式(Proxy)-- 为其他对象提供代理

代理模式(Proxy)类结构图静态代理动态代理JDK ProxyCGLibFastClass机制JDK、CGLib对比源码中的应用ProxyFactoryBeanSpring AOP为其他对象提供代理,控制对这个对象的访问。在客户端和目标对象之间起到中介作用。类结构图Subject:顶层接口RealSubject:被代理对象(真实对象)Proxy:代理对象,持有被代理对象的引用Subject,并在被代理对象的request()前后增加处理。静态代理定义一个接口 Personpublic

2020-09-03 14:23:50 120

原创 享元模式(Flyweight)/ 轻量级模式

享元模式(Flyweight)/ 轻量级模式内部状态、外部状态应用场景代码实现map 中存储,外部获取对象时,map中有则直接返回StringInteger源码中的应用Integer.valueOf()Long.LongCache{}共享细粒度对象,不必为每个访问者单独创建一个对象,以此降低内存消耗。内部状态、外部状态享元模式将对象的状态分为内部状态、外部状态。内部状态即不变,外部状态即变化。通过共享不变的部分,达到减少对象数量并节约内存。内部状态:比如连接池中的配置,这些配置信息是不会变化的。外

2020-09-03 13:09:24 108

原创 设计模式 - 外观模式(Facade)定义一个高层接口

外观模式(Facade)类结构图代码实现当外部需要访问多个子系统时,定义一个高层接口,使子系统更易使用,掩盖系统的复杂性。类结构图代码实现先定义两个模块 Module1 Module2public class Module1 { public void on() { System.out.println("media1 is on"); } public void off() { System.out.println("media1 is off"); }

2020-09-03 12:57:32 334

原创 装饰器模式(Decorator)/ 包装模式(Wapper)

装饰器模式(Decorator)应用场景类结构图代码实现原有对象的基础上,功能附加。装饰器模式是一种特殊的代理模式,强调的是装饰器的扩展。应用场景字节流 InputStream in = new InputStream();BufferReader br = new BufferReader(in);类结构图Battercake: 接口,装饰类和被装饰类的基本类型。BattercakeImpl:具体实现类(被装饰类),本身具备完整的功能。BattercakeDecorator:装饰

2020-09-03 12:52:16 340

原创 组合模式(Composite)/ 整理部分模式

组合模式(Composite)/ 整理部分模式使用场景实现方式一实现方式二(将对象抽象,方便扩展)对比源码中的使用HashMap.putAll()将一组对象当做单个对象,将单个对象(叶子节点)和组合对象(树枝节点)用同一方式表达以树形结构组合对象,来表示部分和整体的层次。使用场景具备整体和部分的层次,呈树状结构ArrayList.addAll(Collection)实现方式一public class Employee { private String name; private

2020-09-02 19:40:06 136 1

原创 设计模式 - 过滤器模式(Filter)

过滤器模式(Filter)使用不同的规则过滤一组对象public class Client { public static void main(String[] args) { List<Persion> persions = new ArrayList<>(); persions.add(new Persion("qq", 11)); persions.add(new Persion("ww", 21)); persions.add(new

2020-09-02 19:12:04 133

原创 设计模式 - 桥接模式(bridge)抽象与实现解耦

桥接模式(bridge)应用场景两个维度的设计方案类结构图代码实现源码中的应用JDBC的API中,Driver类就是桥接对象。将抽象与实现解耦,可自行扩展。适用于业务需要向两个维度扩展应用场景抽象和现实之间增加更多的灵活场景。一个类需要多个维度的扩展。JDBC(SPI)–Driver优点:分离抽象和具体,提高拓展性,符合开闭原则,符合合成复用原则两个维度的设计方案如果要绘制矩形、圆形、椭圆、正方形,至少需要4个形状类,如果各图形又需要不同的颜色,如红色、绿色、蓝色等,那么采用哪种方案?

2020-09-02 19:10:12 311

原创 适配器模式(Adapter)/ 变压器模式

适配器模式(Adapter)/ 变压器模式适用场景类适配器类结构图对象适配模式类结构图源码中的适配器模式SpringAOPSpringMVC将类的接口转化为客户期望的另一个接口,使原本不兼容的类可以一起工作,解决兼容问题。符合开闭原则,只需要新增,无需修改原来的代码。适用场景类已存在,但与需求不匹配Spring aop 、SpringMvc - handleAdapter优点:复用现有类,且不需改变类适配器类结构图Target(目标抽象类):定义客户所需接口,可以是一个抽象类或接

2020-09-02 17:41:46 303

原创 spring注解 -- 赋值组件(自动装配)

@Component@Controller@Service@Repository@Valuepublic class Bird { @Value("name") //1、基本数据类型 private String name; @Value("#{3-1}") //2、Spring EL表达式,3-1=2 private int age; @Value("${bird.color}") //3、通过配置文件赋值 private

2020-09-02 16:28:27 160

原创 spring 注解-- 配置组件

注解配置组件@ComponentScan(value = "com.example.demo")includeFilters自定义filter过滤@Configuration + @Bean@Scope验证Bean是否单例:@Lazy@Conditional条件控制spring-autoconfigure-metadata.properties 文件@Import配置组件@ComponentScan(value = “com.example.demo”)加载指定包,默认加载@Component、@Co

2020-09-02 13:02:38 144

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除