源码分析
文章平均质量分 86
林立可
加点油呢!路还有那么长!
展开
-
【Spring源码系列(二)】循环依赖与三级缓存
三级缓存解决创建 Bean 过程中的循环依赖1,什么是循环依赖?即 A 依赖于 B,B 依赖于 C,C 依赖于 A。这样的问题导致 A 在实例化的时候永远都不能完成。循环依赖的分类:构造器循环依赖这种情况无法解决。因为必须通过构造器实例化,不可能不去调用构造器,也就无法避免依赖的发生。此时抛出 BeanCurrentlyInCreationException。setter 循环依赖。可以通过将实例化和初始化分开的方式,提前暴露已经实例化好的 bean。spring 只能解决 sette原创 2021-09-20 19:49:38 · 133 阅读 · 0 评论 -
【Spring源码系列(一)】Bean的生命周期
Spring 中 Bean 的生命周期1,什么是 Bean?凡是由 Spring IoC 容器负责实例化,组装和管理的对象,我们都称之为 Bean 对象。Bean 对象本身可以看做是 Pojo。官网解释:In Spring, the objects that form the backbone of your application and that are managed by the Spring IoC container are called beans. A bean is an obj原创 2021-09-15 19:22:35 · 180 阅读 · 0 评论 -
【Java集合源码】HashSet源码分析
HashSet1,HashSet 概念HashSet 是 Set 子接口的一个实现子类,它的底层由 HashMap 提供(数组+链表+红黑树),并借助 HashMap 的键来存储对象。由于是 Set 的实现子类,它具备 set 的无序、不可重复、非同步的特点;同时,由于 Hash 效果,它的查找会更快。public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneab原创 2021-08-03 23:01:53 · 264 阅读 · 2 评论 -
【Java 集合源码】ArrayList 源码分析
ArrayList1,概念ArrayList 是 List 接口的一个实现类,底层基于数组实现,具有查询快、增删慢;非线程安全,效率高的特点。同时,ArrayList 还具备了 List 接口的有序、可重复的特点,且允许插入空值。public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializa原创 2021-08-01 22:31:11 · 119 阅读 · 0 评论