- 博客(6)
- 收藏
- 关注
原创 Volatile
volatile 文章目录volatilevolatileREF volatile volatile可以保证线程可见性且提供了一定的有序性,但是无法保证原子性。在JVM底层volatile是采用“内存屏障”来实现的。(lock前缀指令) 保证可见性、不保证原子性 禁止指令重排序 实现原理:有volatile变量修饰的共享变量进行写操作的时候会使用CPU提供的Lock前缀指令。 将当前处理...
2019-10-22 19:14:53 96 1
原创 Synchronized实现原理
Synchronized实现原理 文章目录Synchronized实现原理实现原理Java对象头Monitor锁优化自旋锁自适应自旋锁锁消除锁粗化偏向锁轻量级锁REF 实现原理 synchronized可以保证方法或者代码块在运行时,同一时刻只有一个方法可以进入到临界区,同时它还可以保证共享变量的内存可见性; 用法: 实例方法,锁的是当前对象实例this 静态方法,锁的是类的Class对象实例...
2019-10-22 19:12:29 123
原创 Java内存模型-JMM
Java内存模型-JMM 文章目录Java内存模型-JMM并发编程Java内存模型--JMM原子性、可见性、有序性重排序Happens-BeforeREF 并发编程 在并发编程中需要考虑2个关键问题:线程之前如何通信?线程之前如何同步? 通信:线程之间通过何种机制来交换信息 同步:程序用于控制不同线程之间操作发生发生相对顺序的机制 并发模型 共享内存: 隐式通信:线程之间通过写-读内存...
2019-10-22 19:06:00 154
原创 Java容器-HashMap
Java容器-HashMap 文章目录Java容器-HashMapHashMap原理Put/Get多线程并发问题1.8做了哪些优化为什么用数组+链表解决hash冲突的方法用LinkedList代替数组结构可以吗?为什么扩容是2的n次幂为什么在解决hash冲突的时候,不直接用红黑树?用二叉查找树代替红黑树,可以么当链表转为红黑树后,什么时候退化为链表?为什么阀值是8呢?一般用什么作为HashMap...
2019-10-17 19:08:39 228
原创 Java容器-简介
Java容器-简介 文章目录Java容器-简介综述ArrayListLinkedListVectorStackHashSetTreeSetHashMapHashTableWeakHashMapREF 综述 概述: java.util.Collection: List: ArrayList LinkedList Vector Stack Set HashSet TreeSe...
2019-10-17 19:07:49 292
原创 java 生成PDF文件
java 生成PDF文件 制作pdf模板文件 工具:Adobe Acrobat; 1、选择准备表单 2、设置表单 依赖jar包 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId>...
2019-01-10 17:22:16 401
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人