JVM内存结构
Java代码是要运行在虚拟机上的,而虚拟机在执行Java程序的过程中会把所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途。其中有些区域随着虚拟机进程的启动而存在,而有些区域则依赖用户线程的启动和结束而建立和销毁。
结构如下:
JVM内存结构:由Java虚拟机规范定义,描述的是Java程序执行过程中,由JVM管理的不同数据区域,各个区域有其特定的功能。
Java内存模型
Java Memory Model(JMM)JMM并不像JVM内存结构一样是真实存在,它只是一个抽象的概念。
JMM是和多线程相关的,它描述了一组规则或规范,这个规范定义了一个线程对共享变量的写入时对另一个线程是可见的。
JMM定义了一些语法集,这些语法集映射到Java语言中就是volatile、synchronized等关键字。
Java对象模型
Java对象在JVM中的存储也是有一定结构的,这个Java对象自身的存储模型称之为Java对象模型。
JVM内存结构,和Java虚拟机的运行时区域有关。
Java内存模型,和Java的并发编程有关。
Java对象模型,和Java对象在虚拟机中的表现形式有关。