# 优化原因
- synchronized的底层实现,涉及到了操作系统中的lock等指令,需要操作系统、CPU协助配合,所以效率低,是一把重量级的锁
- Java早期版本,很多方法的实现都存在synchronized关键字,而开发者使用时,这些方法使用的场景并不依赖多线程,这就导致了很多额外的性能开销
- JDK1.6对锁进行了优化,提升了效率
# 32位、64位对象内存模型
这里不重复造轮子了,有现成的文档
https://www.bilibili.com/read/cv4982999/
需要带着问题去了解
- 为什么压缩指针在32G的内存会失效?
- 为什么垃圾回收年轻代的代数是15代?
- UseCompressedOops、CompressedClassPointers是有区别的