源码分析
文章平均质量分 71
晓风残月Lx
今宵酒醒何处,杨柳岸,晓风残月。
展开
-
Spring创建Bean的全过程(二)obtainFreshBeanFactory()
在环境初始化后,执行ConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory(),也就是获得一个刷新的bean容器,实质就是获取工厂。创建容器对象DefaultListableBeanFactory:加载xml配置文件的属性到当前的工厂中。原创 2023-03-05 18:49:22 · 152 阅读 · 0 评论 -
Spring创建Bean的全过程(一)
Spring模块概览,Spring中八大模块,黑色表示该模块的jar包(也就是组件)。例如我们想要使用IOC容器,也就是绿色的CoreContainer,我们需要导入Beans,Core,Context,SpEL(spring-expression)四个包。加载配置文件后,进入AbstractApplicationContext 的refresh()方法,该方法是容器初始化的核心步骤。4.设置监听器、重置本地应用的监听器状态以及创建监听事件的集合。java下建dao包 分别创建下面几个类。原创 2023-03-04 19:17:06 · 287 阅读 · 0 评论 -
Spring创建Bean的全过程(三)prepareBeanFactory(beanFactory)
Spring创建Bean的全过程(三)prepareBeanFactory(beanFactory)原创 2023-03-06 14:00:00 · 324 阅读 · 0 评论 -
HashTable源码分析
Hashtable和HashMap一样,都是一个哈希表,不允许键和值为null,该类是一个线程安全的H,ashtable在添加元素,如果当前容器有key,直接以新值代替旧值。value不能为空,扩容转移元素时采用的是头插法。原创 2023-03-01 15:21:10 · 133 阅读 · 0 评论 -
HashMap底层源码分析
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap是非线程安全的,实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。HashMap 是无序的,即不会记录插入的顺序。之前jdk1.7的存储结构是数组+链表,到了jdk1.8变成了数组+链表+红黑树。原创 2023-02-28 10:23:40 · 92 阅读 · 0 评论 -
ArrayList 源码分析
ArrayList的源码分析、ArrayList的扩容算法、ArrayList的快速失败机制原创 2023-02-26 20:53:24 · 100 阅读 · 0 评论 -
StringBuilder和StringBuffer源码分析
StringBuffer和StringBuilder他们两都继承了AbstractStringBuilder抽象类,他们的底层都是可变的字符数组,所以在进行频繁的字符串操作时,建议使用StringBuffer和 StringBuilder来进行操作。 另外StringBuffer 对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的。StringBuilder 并没有对方法进行加同步锁,所以是非线程安全的。原创 2023-02-25 13:52:45 · 344 阅读 · 0 评论 -
String源码分析
String是只读字符,并不是基本数据类型,从底层源码来看是一个final类型的字符数组,所引用的字符串不能被改变,一经定义,无法再增删改。每次对String的操作都会生成新的String对象。原创 2023-02-24 21:36:35 · 142 阅读 · 0 评论 -
Integer 类源码分析
Integer 类在对象中包装了一个基本类型 int 的值。Integer 类对象包含一个 int 类型的字段。此外,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法。原创 2023-02-23 15:41:22 · 560 阅读 · 0 评论