- 什么是Java内存模型?(重点)
- volatile和synchronized的异同
- 原子性
- 可见性
c语言没有内存模型, 在多核情况下表现不一致. 有三种概念, JVM内存结构, Java对象模型, Java内存模型. JVM内存结构, Java对象模型可以点击下面的链接查看. JVM内存结构, Java对象模型 JMM Java内存模型可以点击下面的链接. JMM Java内存模型 重排序 可见性 原子性 是JMM最主要的体现,也是最重要的内容. 可以讲讲重排序的例子和好处. 重点放在可见性上, 讲讲JMM的抽象, 抽象成了主内存和工作内存这两块. 再可以讲讲happens-before九大规则 happens-before九大规则 接着可以讲讲volatile关键字. volatile的适用场合 , 以及和synchronized的关系 . synchronized不仅仅保证原子性, 并且保证可见性. 并且把synchronized附近的代码, 都可以做到同步的效果. 接着讲讲原子性 原子性介绍 ,Java中的原子性
volatile和synchronized的异同volatile和synchronized的异同
原子性什么是原子性, Java中有哪些原子性操作, 生成对象的过程是不是原子性操作, 原子性介绍 ,Java中的原子性
生成对象不是原子性操作
64位的double 和long 写入的时候一定是原子的吗? Java中没有规定一定是原子性的, 那么在写入的时候, 可能会出现前32位和后32位错位的情况. 但是在实际的生产环境中, 都是原子性的, 因此在实际的开发中, 不需要对double和long进行额外的保证原子性的操作.
可见性什么是内存可见性? 可见性demo 可见性问题出现的原因