自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode mt simple

Leet Code 美团题库简单类总结,题目按照解法可大致分为数学法、计数法、位运算、双指针法、字符串、哈希表、栈、递归/迭代、排序法、匹配法、记忆化法、二分法、分治法、摩尔投票法、前缀和、模拟法、动态规划几大类。大部分题目可以有多种解法。

2024-03-26 15:28:37 858

原创 史上最烂 spring kafka 原理解析

spring-kafka 在不同环境下的使用方式、相关配置详解、KafkaAutoConfiguration 配置原理、@EnableKafka 实际作用、@KafkaListener 注解解析、核心组件及实际关系、启动流程、消息监听、毒丸消息及解决方式、@KafkaHandler 使用技巧、@RetryableTopic 工作原理及使用示例等。

2024-03-26 15:18:02 238

原创 禁奥义·SQL秘籍

sql 语法顺序、执行顺序、执行过程、要点解析、优化技巧。

2023-11-30 22:40:39 1114

原创 走近科学之《MySQL 的秘密》

mysql 存储引擎、索引、执行计划、事务、锁、分库分表、优化。

2023-11-23 09:38:20 354

原创 动态规划十大经典问题

动态规划十大经典问题 数塔取数问题、矩阵取数问题、最大连续子段和、最长递增子序列、最长公共子序列、最长公共子串、最短编辑距离、背包问题、正整数分组、股票买卖问题。

2023-11-21 15:34:50 654

原创 五大匹配算法

五大匹配算法 BF 匹配、RK 匹配、KMP 匹配、BM 匹配、Sunday 匹配。

2023-11-21 15:32:01 425

原创 七大查找算法

七大查找算法 二分(折半)查找、插值查找、斐波那契查找、顺序查找、树表查找、分块查找、哈希查找。

2023-11-21 15:29:38 47

原创 十大排序算法

十大排序算法 冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序。

2023-11-21 15:01:40 706

原创 数据结构及八种常用数据结构简介

数据结构是一种存在某种关系的元素的集合。“数据” 是指元素;“结构” 是指元素之间存在的关系,分为 “逻辑结构” 和 “物理结构(又称存储结构)”。常用的数据结构有 数组(array)、栈(stack)、队列(queue)、链表(linked list)、树(tree)、图(graph)、堆(heap)、散列表(hash)。

2023-11-19 12:00:43 556

原创 《JUC》万万万万字长文解析!

四万字长文解析 juc,涵盖线程、内存模型、锁、线程池、原子类、同步器、并发容器、并发编程模式、并发编程应用等。

2023-09-10 21:42:11 295 1

原创 走近科学之《JVM 的秘密》

JVM、内存模型、类加载机制、对象的创建、垃圾回收机制、对象内存分配策略、JVM调优等。

2023-06-14 21:30:42 981

原创 史上最烂 spring boot 原理分析

spring boot 启动过程、内嵌 tomcat 容器、条件装配、自动配置等。

2023-05-14 23:59:05 324 1

原创 史上最烂 spring web 原理分析

spring web、spring web 与 tomcat、映射器与适配器、参数解析器与类型转换器、返回值处理器与消息转换器、异常处理器、@ControllerAdvice、spring web 工作流程。

2023-05-04 23:16:17 535

原创 史上最烂 spring aop 原理分析

spring aop: jdk 动态代理和 cglib 动态代理的特点、区别、使用、原理及各自对反射的优化、二者在 spring 中的统一、通知顺序、从 @Aspect 到 Advisior、静态通知调用、动态通知调用。

2023-04-24 23:29:39 433

原创 史上最烂 spring ioc 原理分析

spring ioc、di、BeanFactory 与 ApplicationContext、经典容器实现、Bean 的生命周期、Bean 的后置处理器、BeanFactory 的后置处理器、Aware 与 InitializingBean、初始化和销毁、scope 及失效、refresh()、三级缓存、@Value、@Autowired 解析等

2023-04-09 22:48:00 195

原创 经典设计模式总则

设计模式背景-概念、面向对象六大原则、设计模式分类、二十三中常用设计模式即创建型模式、结构型模式、行为型模式

2022-12-22 18:11:20 1197

原创 设计模式之备忘录模式

备忘录模式,又称快照模式,即在不破坏封装的前提下,获取并保存一个对象某一时刻的内部状态,以便以后恢复它。编辑器中的 Ctrl + Z、后退、数据库事务回滚、游戏存档、后悔药等都是备忘录模式的典型应用。备忘录模式的概念、备忘录模式的结构、备忘录模式的优缺点、备忘录模式的使用场景、备忘录模式的实现示例、备忘录模式的源码分析。

2022-12-22 18:05:02 793

原创 设计模式之访问者模式

访问者模式,即在不改变聚合对象内元素的前提下,为聚合对象内每个元素提供多种访问方式,即聚合对象内的每个元素都有多个访问者对象。访问者模式主要解决稳定的数据结构和易变元素的操作之间的耦合问题。变量被声明时的类型叫做变量的静态类型,又称为明显类型;而变量所引用的对象的真实类型叫做变量的实际类型。如 Map map = new HashMap(),map 变量的静态类型是 Map,实际类型是 HashMap。根据对象的类型对方法进行选择,就是分派,即 Dispatch,分派又分

2022-12-22 12:15:05 2126

原创 设计模式之迭代器模式

java 中集合接口 Collection< E> 的子实现类,Map 接口的子实现类大部分都是用了迭代器模式,被广泛使用。需要注意的是,在 java 中当需要使用迭代器模式时,只需要让我们自定义的聚合类实现 java.util.Iterable 接口,并实现其定义的 iterator() 让其返回一个 java.util.Iterator 接口的子实现类实例即可。迭代器模式的概念、迭代器模式的结构、迭代器模式的优缺点、迭代器模式的使用场景、迭代器模式的实现示例、迭代器模式的源码分析。

2022-12-21 22:44:46 941

原创 设计模式之中介者模式

中介者模式,又称调停模式,即定义一个中介者来封装原有多个对象之间的依赖关系,且可以独立改变它们之间的交互,以降低对象之间的耦合度。其是迪米特法则的典型应用。中介者模式的概念、中介者模式的结构、中介者模式的优缺点、中介者模式的使用场景、中介者模式的实现示例、中介者模式的源码分析。

2022-12-21 19:32:33 404

原创 设计模式之观察者模式

观察者模式,又称为发布-订阅模式,即它定义了一种对象间一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时,会通知所有监听这个主题对象的观察者对象,使它们能够自动更新自己。java.util.Observer 和 java.util.Observable 这两个接口实现了观察者模式,当我们需要使用观察者模式时只需要实现这两个接口即可。观察者模式的概念、观察者模式的结构、观察者模式的优缺点、观察者模式的使用场景、观察者模式的实现示例、观察者模式的源码分析。

2022-12-21 17:10:10 567

原创 设计模式之状态模式

状态模式的概念、状态模式的结构、状态模式的优缺点、状态模式的使用场景、状态模式的实现示例、状态模式的源码分析。对有状态的对象,把复杂的判断逻辑提取到不同的状态对象中,允许状态对象在其内部状态发生改变时改变其行为。

2022-12-21 15:05:42 421

原创 设计模式之责任链模式

java web 中的 FilterChain 就是责任链模式的典型应用,spring security 中的 SecurityFilterChain 也是责任链模式的典型应用,其在 FilterOrderRegistration 类中声明了默认内置 filter 的顺序,并在 HttpSecurity 类中声明了内部类 OrderedFilter 来承载 Filter,并对外提供了可以指定顺序的 addFilter 方法,以这些手段来明确 filter 在 filter chain 中的执行顺序。

2022-12-20 23:14:36 441

原创 设计模式之命令模式

jdk 中的 Runnable 接口的设计就是一个典型的命令模式。Runnable 接口担当命令角色,Thread 则是调用者,start 方法就是命令执行方法。命令模式,即将请求封装成一个对象,使发出请求的责任和执行请求的责任分离开。这样两者之间通过命令对象进行沟通,方便讲命令对象进行存储、传递、调用和管理。通过源码可以发现,其在发出命令调用时会调用一个本地方法 start0(),开启一个县城。命令模式的概念、命令模式的结构、命令模式的优缺点、命令模式的使用场景、命令模式的实现示例、命令模式的源码分析。

2022-12-19 22:52:47 553

原创 设计模式之策略模式

这是典型的策略模式的应用,同样,SessionRegistory 也用到了策略模式。策略模式,即定义一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的用户。策略模式属于对象行为模式,它通过对算法进行封装,使把使用算法的责任和算法的实现分离开来,并委托给不同的对象对这些算法进行管理。策略模式的概念、策略模式的结构、策略模式的优缺点、策略模式的使用场景、策略模式的实现示例、策略模式的源码分析。

2022-12-19 19:46:32 543

原创 设计模式之模版方法模式

jdk 中的 InputStream 类的设计就使用了模版方法。而 read(byte b[]) 调用了 read(byte b[], int off, int len) 方法,所以此处 read(byte b[], int off, int len) 方法是模版方法,其定义了算法的步骤,read() 是算法中抽象化的某个步骤,由子类。模版方法模式的概念、模版方法模式的结构、模版方法模式的优缺点、模版方法模式的使用场景、模版方法模式的实现示例、模版方法模式的源码分析。

2022-12-19 17:25:34 334

原创 设计模式之组合模式

组合模式的概念、组合模式的结构、组合模式的优缺点、组合模式的使用场景、组合模式的实现示例、组合模式的源码分析。合模式,即部分整体模式,是用于把一组相似的对象当做一个单一个的对象。组合模式依据树形结构来组合对象,用以表示部分以及整体层次。这种类型的设计模式属于结构形模式,它创建了对象组的树形结构。

2022-12-18 23:38:14 460

原创 设计模式之享元模式

享元模式,即运用共享技术来有效的支持大量细粒度对象的复用。它通过共享已经存在的对象来大幅度减少需要创建的对象数量,避免大量相似对象的开销,从而提高系统资源的利用率。  享元模式中存在以下两种状态:- 内部状态:即不会随着环境的改变而改变的可共享状态。- 外部状态:即随着环境的改变而改变的不可共享状态。享元模式的实现要领就是区分应用中的这两种状态,并将外部状态外部化。

2022-12-18 21:22:01 513

原创 设计模式之外观模式

外观模式,为多个复杂的子系统提供一个统一的接口,使得这些子系统更加容易被访问。在现有的系统中增加一个接口,提供了客户端请求的简化方法和现有系统类方法的委托调用,同时隐藏了系统的复杂性。

2022-12-18 17:16:35 335

原创 设计模式之装饰器模式

装饰模式的概念、装饰模式的结构、装饰模式的优缺点、装饰模式的使用场景、装饰模式与代理模式的区别、装饰模式的实现示例、装饰模式的源码分析

2022-12-18 14:14:50 407

原创 设计模式之桥接模式

桥接模式,即将抽象和实现分离,使他们可以独立变化。它是用组合关系来代替继承关系实现的,从而降低了抽象和实现这两个可变维度的耦合度。桥接模式基于类的最小设计原则,通过使用封装、聚合、继承等关系让不同的类承担不同的职责。

2022-12-17 21:45:16 648

原创 设计模式之适配器模式

适配器模式,即将一个类的某个接口转换成用户希望的另一个接口,使得原本由于接口不兼容而不能在一起工作的类可以在一起工作。适配器模式分为类适配器模式和对象适配器模式,类适配器模式依赖继承关系实现,故比依赖组合或聚合关系实现的对象适配器模式耦合度高。jdk 中的 Reader(字符流)、InputStream(字节流)的适配使用的是 InputStreamReader。适配模式的概念、适配模式的结构、适配模式的优缺点、适配模式的使用场景、适配模式的实现示例(类适配模式和对象适配模式)、适配模式的源码分析。

2022-12-17 18:03:11 577

原创 设计模式之代理模式

代理模式的概念、代理模式的结构、代理模式的优缺点、代理模式的使用场景、代理模式的实现示例(静态代理、jdk 动态代理、cglib 动态代理)、代理模式的源码分析

2022-12-16 22:40:11 1404

原创 设计模式之建造者模式

建造者模式出上述用途外,其在在 jdk、spring 等源码中以及日常开发中最常用的另外一种方式则是:当一个构造器需要传入很多参数时,其代码可读性会较差,且很容易引入错误,此时就可以利用建造者模式。将一个复杂对象的构建和表示分离,使得同样的创建过程可以得到不同的表示。其主要特点是将产品本身和产品创建过程解耦,且分解产品创建过程,使创建过程更加清晰,同时也方便控制产品的创建过程步骤。建造者模式的概念、建造者模式的结构、建造者模式的优缺点、建造者模式的使用场景、建造者模式的实现示例、建造者模式的源码分析。

2022-12-15 12:32:54 375

原创 设计模式之抽象工厂模式

抽象工厂模式的概念、抽象工厂的结构、抽象工厂的优缺点、抽象工厂的使用场景、抽象工厂的实现示例、抽象工厂的源码分析。

2022-12-08 19:46:35 1073

原创 设计模式之工厂方法模式

工厂方法模式的概念、工厂方法模式的结构、工厂方法模式的优缺点、工厂方法模式的使用场景、工厂方法模式的实现示例、工厂方法模式的源码分析。工厂方法模式,及简单工厂模式的升级版,其抽象了对象的创建,将对象的具体创建延迟到了其子类中。这样,当有新产品加入时,不用再修改已有的工厂类,只需要增加新产品的实现和新产品对应工厂的实现即刻。

2022-12-08 17:55:01 525

原创 设计模式之简单工厂模式

简单工厂模式,与其说是设计模式,不如称它为编程习惯。简单工厂只提供了简单的对象生产能力,且违反了软件设计原则的 开闭原则。其没有被收录在 GoF 的二十三种设计模式中。简单工厂模式的概念、简单工厂模式的结构、简单工厂模式优缺点、简单工厂模式的使用场景、简单工厂模式的实现示例。注:简单工厂模式没有被收录在 GoF 的二十三种设计模式中。

2022-12-08 17:49:15 304

原创 设计模式之原型模式

原型模式的概念、原型模式的结构、原型模式的优缺点、原型模式的使用场景、浅拷贝与深拷贝、原型模式的实现示例、原型模式的源码分析 原型模式,即将一个对象作为原型对象,通过对其克隆而复制出多个与原型对象类似的新实例。 使用原型模式创建对象要比使用 new 等关键字创建对象性能好的多,因为原型模式的本质是使用 Object 的 clone() 方法克隆对象,而这个方法是本地方法,它直接操作内存中的二进制流,特别是大对象时,性能差异特别明显。使用原型模式就好比复制粘贴,而不是亲手码。需要注意的是,使用原型模式时需

2022-12-07 12:01:22 374

原创 设计模式之单例模式

单例模式的概念、单例模式的结构、单例模式的优缺点、单例模式的使用场景、单例模式的实现示例、序列化和反射与单例模式、单例模式源码分析 单例模式,即只能生成一个实例的模式叫做单例模式。单例模式是只有一个简单的类,没有复杂的调用和接口的设计,只要求这个类无论什么时候只能生成一个实例即可。 如日志应用、应用配置读取、通信、线程池、windows 的任务管理器、垃圾回收站等。 单例模式一般有七种实现方式,即懒汉-线程不安全、懒汉-线程安全、饿汉、饿汉-变种、静态内部类、枚举、双重校验锁。懒汉-线程不安全懒

2022-12-06 18:30:09 663 1

原创 spring boot 自定义 starter

@EnableAutoConfiguration:通过该方法来加载项目中的 starter 依赖中配置的 bean,然后将这些 bean 加载到 spring 容器中,即自动装配。具体原理是:@EnableAutoConfiguration 注解存在于 @SpringBootApplication 注解,@EnableAutoConfiguration 注解中 import 了一个 AutoConfigurationImportSelector 加载器,该加载器回去项目所依赖的 jar 包下的 META-I

2022-12-01 16:18:17 733

空空如也

空空如也

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

TA关注的人

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