Java内存模型、JVM内存模型、Java对象模型的区别
Java内存模型、JVM内存模型、Java对象模型的区别
这三者听起来很像,其实是三种截然不同的概念
1.JVM内存模型
JVM内存结构由JVM虚拟机规范定义。描述的是java程序执行过程中,由JVM管理的不同数据区域,各个区域的功能会有区别。
也就是我们常说的 堆、栈、方法区、程序计数器的内存区域
2.Java内存模型 Java Memory Model(JMM)
Java堆和方法区是多个线程共享的数据区域。多个线程可以操作堆和方法区中的同一个数据。Java的线程间通过共享内存进行通信
Java多线程对共享内存进行操作的时候,会存在一些如可见性、原子性和顺序性的问题,JMM是围绕着多线程通信及相关的一些特性而建立的模型。
3.Java对象模型
Java对象在JVM中的存储有一定的结构,Java对象自身的存储模型就叫做Java对象模型。
总结:
JVM内存模型和Java 虚拟机的运行时内存区域相关
Java内存模型和Java并发编程,线程间的内存关系有关
Java对象模型和Java对象在Java虚拟机的表现形式有关