零、 本文纲要
一、 单例模式
饿汉式
① 静态变量方式
② 静态代码块
③ 枚举
懒汉式
① 静态方法(线程不安全)
② 静态synchronized方法(线程安全)
③ 静态方法双检锁(线程不安全)
④ 静态方法双检锁volatile优化(线程安全)
⑤ 静态内部类(线程安全)
二、 单例模式问题解决
防止序列化破坏单例
防止反射破坏单例
三、 JDK中存在的单例模式
ja
java1.7 以前HashMap底层由数组+链表形式实现。
1.1 插入数据时首先计算数据key的hash值,根据hash找到对应的数组槽位。
1.2 找到槽位后,判断当前数组槽位是否为null,null则直接作为链表表头插入,否则判断当前需要插入的key是否已经在当前槽位的链表中存在,存在则直接替换新值,不存在则插入到头结点。
// hash值计算
static final int has