自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 AQS源码分析

一、前言 问题引入 @Controller public class TradeController { @Autowired private TradeService tradeService; @RequestMapping("/order") public String order() { tradeService.decStock(); return "success"; } } @Service public class

2022-04-04 20:54:24 434

原创 HashMap源码分析

1.方法 1.1 put() 1.1.1 首先看方法注释。需要注意的是,put的键已经存在映射时,会覆盖旧值,并返回旧值。这点之后再拓展说明。 public V put(K key, V value) { return putVal(hash(key), key, value, false, true); } 1.1.2 哈希 /** * 计算key.hashCode()并将散列的(XOR)较高的位散布到较低的位。 * 因为该表使用2的幂次掩码,所以仅在当前掩码上方的位中发生

2021-05-10 21:06:59 79

原创 Spring源码--解决循环依赖

前言 在了解循环依赖前,需要对bean的创建流程十分熟悉,如果没有看过相关源码,可以参考:Spring源码–bean的创建流程 一、什么是循环依赖 简单来说,就是A依赖B,B依赖C,C依赖A。 循环依赖的情况下,对象创建时,所依赖的对象并不存在,导致创建出现问题。 循环依赖有两种情况: 1、构造器循环依赖 public class D { public D(C c) { ... } } public class C { public C(D d) { ...

2021-05-04 22:03:59 103 1

原创 Spring源码--bean的创建流程

一、核心方法reflesh() public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // 准备工作,初始化Spring状态,并确认配置正确 prepareRefresh(); // 获取bean工厂 ConfigurableListableBeanFactory beanFactory = obtain

2021-05-04 17:38:01 116

原创 List源码分析--ArrayList

1.扩容机制 1.1.源码分析 List<Integer> list = new ArrayList<>(); for (int i = 0;i < 15;i++){ list.add(i); } 初始化: // 默认初始化一个空的object数组 public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEM

2021-04-24 11:04:20 68 1

原创 自定义@Autowired注解

前言介绍 @Autowired 可以对类成员变量、方法及构造函数进行标注,让 spring 完成 bean 自动装配的工作 手动实现 1. 新建一个普通Java工程 2.Autowired注解类 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) @Inherited @Documented public @interface Autowired { } 3.UserController类 public class UserCo

2021-04-18 08:58:34 546 1

原创 RabbitMQ 使用总结

Docker中RabbitMQ 的使用总结1.WEB界面1.1无法打开WEB界面2.2 后台页面信息显示不全 1.WEB界面 1.1无法打开WEB界面 运行容器时确保端口开启状态 docker run -di --name=mycloud_rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 15671:15671 -p 15672:15672 -p 25672:25672 仍无法访问 http://localhost:15672 默认不会开启管理后台页面,

2021-04-17 22:16:10 110 1

空空如也

空空如也

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

TA关注的人

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