自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 spring容器的初始化过程

refreshBeanFactory()方法中,它销毁了原有的bean工厂,并创建了新的bean工厂,并且加载并解析了配置文件中的bean的配置信息,但这一步并没有将bean实例化。prepareRefresh函数,主要做了一些容器刷新之前的配置工作,如:配置容器启动时间,配置容器状态,检查配置文件,创建事件监听器容器,创建存储事件的容器。这个方法的作用是调用所有的beanFactory的后置处理器,来执行一些beanFactory创建完成之后的工作。属性后置处理器,是处理那些添加了注解的属性的处理器。

2023-01-07 20:00:00 473

原创 代理模式。

代理模式 顾名思义就是为我们真正使用的对象寻找一个代理,我们通过调用代理对象的方法间接地调用真正使用的对象的方法。就像我们生活中去工厂打工,不直接去工厂,而去找中介、去旅游不直接去旅游目的地,而是去找旅行社一样。代理模式的优点:(1)代理模式能将代理对象与真实被调用目标对象分离。(2)在一定程度上降低了系统的耦合性,扩展性好。(3)可以起到保护目标对象的作用。(4)可以增强目标对象的功能。代理模式的缺点:(1)代理模式会造成系统设计中类的数量增加。

2022-11-02 21:17:50 152

原创 原型模式。

原型模式可以通过一个现存的对象复制出一个具有相同属性的新对象。原型模式的角色:​ 原型模板:一个实现了Clonable接口的类。例如:当你结婚需要给亲朋好友们发送请柬时,请柬的大致内容都一样,只有收件人姓名和收件地址不同,这种情况下我们就可以利用原型模式来简化我们的代码。收件人信息类:定义了收件人的姓名和邮箱地址邮件类:定义了发送邮箱的必要信息,实现了Cloneable接口。客户端测试代码:首先定义了原型对象,并给原型对象赋值,再通过原型对象批量clone可用对象。

2022-10-26 12:38:27 150

原创 单例模式。

单例模式是指,确保一个类在任何情况下都只有一个实例,供全局访问。单例模式可以根据类加载的时机不同,可以分为饿汉式和懒汉式。

2022-10-23 20:56:25 103

原创 用不到200行代码手写一个数据库连接池

手写一个简单又好用的数据库连接池,到底有多简单,小白进来也能看懂。

2022-10-23 11:45:43 229

原创 简单工厂模式、工厂方法模式、抽象工厂模式 对比学习笔记

架构设计原则开闭原则:是指一个软件实体(如类、模块和函数)应该对扩展开放,对修改关闭。依赖倒置原则:是指设计代码结构时,高层模块不应该依赖低层模块,二者都应该依赖其抽象。抽象不应该依赖细节,细节应该依赖抽象。单一职责:是指一个类只负责一个主要任务,避免因一个类负责两个以上任务时,修改其中一个任务代码导致另一个任务代码受到连带影响。接口隔离原则:是指用多个专门的接口,而不使用单一的总接口,客户端不应该依赖它不需要的接口。

2022-10-19 21:06:53 680

原创 TreeMap源码阅读

TreeMap的内部结构是一棵红黑树,查找,添加 和删除的效率都是log(n);且内部所存储的元素都是有序的,为了使TreeMap中的元素是有序的,必须要提供一个能够比较TreeMap内部存储的元素的方法;TreeMap提供了两种方式来帮助TreeMap比较内部所存储的元素;方式一:在创建TreeMap时,在构造方法中传入一个比较器Comparator方式二:让被存入TreeMap的元素的键实现Comparable接口。...

2022-08-25 20:13:31 488

原创 红黑树- 插入、删除 流程详解,末尾附完整代码,及高清过程图

红黑树是平衡二叉树的一种, 它与完全二叉树相比, 拥有更高效的插入和删除的效率, 还有能媲美完全二叉树的查找效率。 红黑树是由2-3树改进的一种数据结构,红黑树中的所有节点都被赋予一种颜色,要么黑色,要么红色; 因为有红色节点的存在,使得红黑树可以在进行插入、删除的操作的时候进行局部、少量的调整,即可维持红黑树的平衡。 调整操作包括: 1. 左旋 2. 右旋 3. 变色......

2022-08-17 20:05:46 1009

原创 HashMap源码阅读

HashMap存储的是以键值对(key-value)形式的集合,允许出现null键 和 null值,并且储存的元素是无序的。Hashmap线程不安全。内部采用 数组 + 链表 + 红黑树 的数据格式, 这种数据结构拥有几乎常数级的 增删改查 效率。...

2022-08-11 17:30:31 101

原创 LinkedList源码阅读

LinkedList内部是一个双向链表结构,它还实现了List 和 Deque 接口。LinkedList是线程不安全的,可以通过 将LinkedList转化为线程安全的。相同点:都实现了,, 接口。不同点:LinkedList没有实现。 说明LinkedList不支持快速随机访问。LinkedList实现了 而ArrayList没有。Deque是一个队列类,支持对头尾双端进行添加和删除的数据结构。元素节点的结构构造方法无参构造有参构造...

2022-07-14 14:38:02 194

原创 JDK-ArrayList源码分析

ArrayList源码解析ArrayList是List的一种实现,是为存放不定长数据而设计的一种集合类,是List接口的一种实现方案。 底层使用数组实现,当数组中数据达到数组的最大容量时,会自动扩大容量至原来的1.5倍或至容纳所有元素的最小的容量。ArrayList特点: 底层使用的是数组 随机查询效率极快 尾部追加效率高,头部追加效率低 线程不安全 值可重复,也可以为null ArrayList的继承关系Serializable 接

2022-05-15 14:58:54 153

原创 SSL/TSL在握手中,都发生了那些事?(SSL/TSL实现过程)

概览安全套接字层 (SSL) 是一种加密安全协议。它最初由 Netscape 于 1995 年开发,旨在确保 Internet 通信中的隐私、身份验证和数据完整性。SSL 是如今使用的现代 TLS 加密的前身。实施 SSL/TLS 的网站的 URL 中带有“HTTPS”,而不是“HTTP”。SSL/TLS 协议可以被划分为两层第一层被称为握手协议层(The Handshake Layer),它由三个子协议组成。 握手协议(Handshake) 这个子协议是用来协商客户端和服务器写

2022-05-02 20:46:51 1804

原创 如何配置vim(设置快捷键,自定义主题,安装插件)

我也要入vim的坑了

2022-02-06 15:15:42 9345 2

空空如也

空空如也

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

TA关注的人

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