自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springboot是如何实现自动装配的

启动阶段:应用启动时,Spring Boot会找到标记了的类作为启动入口。配置加载:通过,启动类被识别为配置类,Spring开始处理Java配置。组件扫描执行,扫描并注册应用中的组件。自动配置发挥作用,加载文件中列出的所有自动配置类。这些配置类基于项目依赖、环境变量和其他条件来决定哪些bean需要被创建。条件判断与Bean注册:自动配置类中的条件注解判断是否应该执行配置逻辑,符合条件则通过@Bean方法向Spring容器注册bean。依赖注入与应用启动。

2024-05-05 17:01:46 547 3

原创 Spring中所用的到的设计模式

Spring框架作为一个广泛使用的Java企业级应用程序开发框架,深度整合了多种设计模式以提供高效的组件管理、依赖注入、面向切面编程等功能。

2024-04-21 18:46:36 543 1

原创 Spring是如何解决循环依赖的

Spring循环依赖是指在Spring管理的Bean(即由Spring容器负责创建、配置和管理的对象)之间,存在一种互相依赖的关系,使得它们形成了一个闭环。直接循环依赖:如Bean A依赖Bean B,同时Bean B反过来也依赖Bean A。间接循环依赖:更为复杂的情况,如Bean A依赖Bean B,Bean B依赖Bean C,而Bean C又依赖回Bean A,形成一个闭环。

2024-04-14 17:25:58 482 1

原创 spring的动态代理和静态代理

代理是一种设计模式,提供了对目标对象另外的访问方式,即通过代理对象访问目标对象。可以不修改目标对象,对目标对象功能进行拓展。在我们学习Spring的时候就会发现,AOP(面向切面编程)的底层就是代理。代理的实现可以分为静态代理和动态代理。动态代理又根据实现的方式分为:基于JDK接口的动态实现和基于Cglib类的动态实现。

2024-01-15 23:22:54 1588

原创 Spring AOP原理

AOP即面向切面编程,是OOP编程的有效补充。使用AOP技术,可以将一些系统性相关的编程工作,独立提取出来,独立实现,然后通过切面切入进系统。从而避免了在业务逻辑的代码中混入很多的系统相关的逻辑——比如权限管理,事物管理,日志记录等等。这些系统性的编程工作都可以独立编码实现,然后通过AOP技术切入进系统即可。从而达到了将不同的关注点分离出来的效果。

2024-01-14 22:04:33 1755 1

原创 Spring 容器中 Bean的生命周期

也可以在类中自己定义一个方法,通过xml文件中的init-method的属性,选择自己定义的方法名实现属性初始化。

2024-01-07 21:02:49 1116

原创 Comparable接口与Comparator接口的使用和区别

如果要使用Comparable接口,则必须实现这个接口,并重写compareTo()方法,但是Comparator接口可以在类外部使用,通过将该接口的一个匿名类对象作为参数传递给Collections.sort()方法或者Arrays.sort()方法实现排序。Comparable接口只提供了一个comparaTo()方法,Comparator接口不仅提供了compara()方法,还提供了其他默认方法,可以按照更多的方式进行排序。Comparable接口位于java.lang包下;

2023-10-31 17:55:59 36 1

原创 HashSet去重复原理解析

在put方法里面用传入的key调用了一个hash方法,通过hash方法算出一个hash地址值,如果地址值不一样,会直接存储,这也是为什么两个对象在参数项都相同可以存进去的原因,因为它们都是new出来的地址值算出来的hash地址值都不一样,会直接存储。如果hash值地址相同,会在去用equals方法作比较,因为在传入的对象之中不存在equals方法,所以调用的equals方法是父类的。1,.调用add(E e)方法的时候,会在底层调用map的put方法,在put方法里面用元素e算出对象的地址值。

2023-10-29 22:15:29 277 1

原创 HashMap扩容机制源码分析(put)方法JDK1.8

哈希方法根据一个扰动,得到了一个哈希值,找到对应的存放位置,当存入的key是null的时候他的哈希值只能是0。3.如果值不为null ,发生哈希冲突,结果不同的情况下,在判断是否为树,如果不为树,则判断是否为链表。1.计算一个哈希地址,如果当前存放的位置为空,给当前的位置直接new一个节点直接存进去。2.如果不为空,发生哈希冲突,判断key是否相同,如果key相同,则覆盖重写。如果是链表形式,找到下一个元素为null的时候,放新元素。如果是树形的,用树的方式创建新节点,加载到树上。

2023-10-16 00:51:14 60 1

原创 Arrayslist的扩容机制

其中elementData就是ArrayList实现的object的数组名,在用无参构造的时候给了一个空的数组,也就是长度为0当第一次添加元素,扩充长度到10,此后如果继续添加元素到第11个的时候触发第二次扩充,扩容容量为本身加上自己的1.5倍,到15个,添加到16的时候扩容到22个,以此类推。

2023-10-12 01:11:52 39

原创 StringBuilder和StringBuffer的扩容机制

1.StringBuilder和StringBuffer都继承了同一个类AbstractStringBuilder。2两个的区别在于StringBuilder的安全性低但是性能高,StringBuffer的安全性高但是性能低。3.两个类的扩容机制一样。

2023-10-09 18:01:34 41 1

空空如也

空空如也

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

TA关注的人

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