源码分析

源码分析

  • ConcurrentHashMap JDK1.8 源码分析
    2021年04月13日

    ConcurrentHashMap JDK1.8 源码分析

    1 助记JDK 1.7使用的是segment分段锁,默认为16个segment,扩容分别在各自的segment进行。JDK 1.8使用的是Synchronized+CAS自旋,相应的内部结构和hashmap一样,改为了红黑树当Node数组为空,直接用CAS初始化或者插入数据当Node数组节点不为空,

    查看全文
  • SpringBoot 自动装配
    2021年04月12日

    SpringBoot 自动装配

    1 对比以前:在没有Spring之前,我们需要通过XML或者Java中定义@Bean 来把我们要用的jar装配到Spring中现在:Springboot提供了一个规范,只要按照这个规范定义好我们用的starter,它就会为我们自动装配。2 具体实现2.1 Springboot的核心注解@Enable

    查看全文
  • ArrayList JDK1.8源码分析
    2021年04月11日

    ArrayList JDK1.8源码分析

    助记初始大小:单例,初始为10,扩容1.5倍mod: failfast问题时间复杂度add :O(1)add(index): O(n-index),因为需要数组移动get:O(1)最大容量:Integer.Max-8构造函数ArrayList 有三种方式来初始化以无参数构造方法创建 ArrayLis

    查看全文
  • HashMap JDK1.8源码分析
    2021年04月11日

    HashMap JDK1.8源码分析

    帮助记忆组成:Node数组+链表/红黑树数组:默认为0,用了单例模式,第一次调用初始化为16,扩容因子为0.75链表:长度大于8,且数组长度大于64,转为红黑树,长度小于6,转为链表hash索引:异或高四位,防止hash冲突扩容:重新散列法hash异或高四位,防止hash冲突static final

    查看全文