标签:方式 main 存储 共享 方法 包括 速度 image 高速缓存
JMM内存模型
JMM即Java内存模型(Java Memory Model)。可以理解为它是一种抽象出来的硬件存储模型的规范。
根据JMM的设计,系统存在一个主内存(Main Memory),Java中所有变量都储存在主存中,对于所有线程都是共享的。每条线程都有自己的工作内存(Working Memory),工作内存中保存的是主存中某些变量的拷贝,线程对所有变量的操作都是在工作内存中进行,线程之间无法相互直接访问,变量传递均需要通过主存完成。
(图片来源于网络)
JVM内存模型
主要包括:堆,虚拟机栈,本地方法栈,方法区和程序计数器。
JMM内存模型与JVM内存模型的关系
JMM定义了一种模型规范,而JVM就是基于这中规范实现的一种内存模型划分方式。
jmm中的主内存、工作内存与jvm中的堆、栈、方法区等并不是同一个层次的内存划分,这两者基本上是没有关系的,如果两者一定要勉强对应起来,那从变量、主内存、工作内存的定义来看,主内存主要对应于Java堆中的对象实例数据部分,而工作内存则对应于虚拟机栈中的部分区域。从更低层次上说,主内存就直接对应于物理硬件的内存,而为了获取更好的运行速度,虚拟机(甚至是硬件系统本身的优化措施)可能会让工作内存优先存储于寄存器和高速缓存中,因为程序运行时主要访问读写的是工作内存。
JVM内存结构
https://www.cnblogs.com/ityouknow/p/5610232.html
标签:方式 main 存储 共享 方法 包括 速度 image 高速缓存
原文地址:https://www.cnblogs.com/tianboblog/p/12963846.html