- 博客(7)
- 收藏
- 关注
原创 Springboot自动装配
AutoConfigurationImportSelector这个类中的selectImport方法会帮助我们去加载项目中META-INF/spring.factories中所有键为。)注解的 bean,注解默认会扫描启动类所在的包下所有的类 ,可以自定义不扫描某些 bean。,对应的值就是一系列自动配置类的全限定名,导入spring容器中。:允许在上下文中注册额外的 bean 或导入其他配置类。:启用 SpringBoot 的自动配置机制。Springboot自动装配流程。中的导入了自动配置导入选择器。
2025-03-02 21:22:51
350
原创 Spring Bean的生命周期
到最终缓存到名为singletonObjects单例池之前,中间会经过Bean的初始化过程,例如:属性的填充、初始方法init的执行等,其中有一个对外进行扩展的点BeanPostProcessor,我们称为Bean后处理。时,从容器中getBean获取后通过set方法反射设置进去,如果容器中没 有,则先创建被注入对象Bean实例(完成整个生命周期)后,在进行注入操作;时,就比较复杂了,涉及了循环引用(多个实体之间相互依赖并形成闭环的情况就叫做"循环依赖",也叫做"循环引用",Spring提供了。
2025-02-16 20:41:41
571
原创 HashMap源码分析
进行扩容时,会伴随着一次重新 hash 分配,并且会遍历 hash 表中所有的元素,是非常耗时的。HashMap 主要用来存放键值对,它基于哈希表的 Map 接口实现,是常用的 Java 集合之一,是非线程安全的。判断当前元素存放的位置,如果当前位置存在元素的话,就判断该元素与要存入的元素的 hash 值以及 key 是否相同,如果相同的话,直接覆盖,不相同就通过拉链法解决冲突。HashMap 只提供了 put 用于添加元素,putVal 方法是被 put 方法调用的一个方法,并没有提供给用户使用。
2024-10-21 00:15:42
355
原创 ArrayList与LinkedList比较
将最后一个元素赋值给节点l,创建节点newNode,并指定节点前驱为链表尾节点 last,后继引用为空,将 last 引用指向新节点,判断尾节点是否为空,如果 l 是null,则是第一次添加元素,将first赋值为新节点,此时链表只有一个元素。定义一个节点元素保存 succ 的 prev(前一节点信息),初始化节点,并指明前节点和后节点。将 succ 前节点引用 prev 指向新节点,判断前节点是否为空,为空表示 succ 是第一个节点,新节点成为第一个节点,否则succ 节点前驱的后继引用指向新节点。
2024-10-17 00:04:58
835
原创 StringBuilder与StringBuffer扩容机制
String适用于操作少量的数据;则调用newCapacity()方法,定义一个新的容量,将容量扩大2倍再加2。若新的容量减去最小容量小于0,则说明扩充后的容量还是不够,则直接扩充到所需要的容量;若要放入的元素长度减去剩余容量是否为正数,如果为正数,说明剩余容量不够用,触发扩容机制。父类的append()方法,其中ensureCapacityInternal(count+len)是所需要的容量。扩容机制:使用append()方法向数组中添加元素,当底层数组容量不够用时,就会触发默认扩容机制:扩大2倍+2。
2024-10-10 22:04:19
592
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅