摘要:
本篇文章主要讲了lock的原理 就是AQS算法,还有个姊妹篇 讲解synchronized的实现原理 也是阿里经常问的, 参考:深入分析Synchronized原理(阿里面试题) 一定要看后面的文章,先说结论: 非公平锁tryAcquire的流程是:检查state字段,若为0,表示锁未被占用,那么尝 阅读全文
摘要:
各种锁简介https://www.cnblogs.com/jyroy/p/11365935.html 还有一篇 讲解lock的实现原理,参考:解决多线程安全问题-无非两个方法synchronized和lock 具体原理以及如何 获取锁AQS算法 (百度-美团) 记得开始学习Java的时候,一遇到多线 阅读全文
摘要:
一、HashSet private transient HashMap<E,Object> map; //map集合,HashSet存放元素的容器 private static final Object PRESENT = new Object(); //map,中键对应的value值 HashSe 阅读全文
摘要:
一、HashMap 线程不安全 初始化:构造一个空的HashMap,初始容量为16,负载因子为0.75 https://www.jianshu.com/p/dde9b12343c1 (1.7 Entry<K,V>头插法 1.8Node<K,V>尾插法) 扩容:通过HashMap源码可以看到是在put 阅读全文
摘要:
一、ArrayList 线程不安全 1.数据结构(数组 transient Object[] elemetData;) ArrayList的底层数据结构就是一个数组,数组元素的类型为Object类型,对ArrayList的所有操作底层都是基于数组的。 2.扩容(1.5倍,在add时初始化默认为10) 阅读全文
摘要:
mybatis: xxMapper > xxMapper.xml2.SqlSession代表和数据库的一次会话,用完必须关闭。3.SqlSession和Connection一样,都是非线程安全的,每次使用都是应该去获取新的对象,不要将这个对象定义在类变量中使用!4.mapper接口没有实现类,但是m 阅读全文
摘要:
7中经典垃圾收集器:https://blog.csdn.net/weixin_43696529/article/details/104884777 低延迟收集器 8.Shenandoah 与G1有三个明显不同 支持并发的整理算法 不使用分代收集 摒弃了记忆集,改用连接矩阵(Region N 有对象指 阅读全文
摘要:
年轻代、老年代、永久代 四种引用类型 3.1 哪些需要回收 什么时候回收 怎么回收 垃圾回收(Garbage Collection,GC),顾名思义就是释放垃圾占用的空间,防止内存泄露。有效的使用可以使用的内存,对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收。 3.2对象已死 Java堆 阅读全文
摘要:
结构图 常量池 主要存放两大常量 字面量:如文本字符串,被声明未final的常量值等。 符号引用: 被模块导出或开放的包(Package) 类和接口的全限定名(Fully Qualified Name) 字段的名称和描述符(Descriptor) 方法的名称和描述符 方法句柄和方法类型(Meatho 阅读全文
摘要:
l类加载:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称为虚拟机的类加载机制。 Java动态扩展的特性依赖运行期动态加载和动态连接这个特性 类加载过程 加载 连接:验证、准备、解析(某些情况可以初始化之后开 阅读全文