Java内存模型(Java Memory Model),简称JMM,定义了JVM(Java虚拟机)在计算机内存(RAM)中的工作方式,目的是定义一个一致的、跨平台的内存模型,是隶属于JVM的。
我们先来看看内存模型的组成(Java 8)
其中需要注意的几个点:
线程私有:私有数据区域其它线程不可见,生命周期随着线程的的启动而创建,线程结束而销毁。
线程共享:所有线程可见,生命周期跟随着JVM的启动/关闭而创建/销毁
直接内存:并不是JVM的一部分,可以使用native函数直接分配堆外内存,然后使用DirectByteBuffer对这块内存的引用进行操作,避免在Java堆和Native之间来回复制数据,在一些场景中可以显著提高性能
总结:
以上是基于Java 8 的内存模型组成描述,如果想了解JMM运行过程,请参见下一篇博客