JVM 内存结构 VS Java 内存模型 VS Java 对象模型

整体上

  • JVM 内存结构:和 Java 虚拟机运行时区域有关。
  • Java 内存模型:和 Java 的并发编程有关。
  • Java 对象模型:和 Java 对象在虚拟机中的表现形式有关。

JVM 内存结构

JVM 内存结构
  • 堆:保存通过 new 创建的实例对象,数组等。如果有对象没有被引用,则会被回收。
  • Java 栈:保存了各个基本类型,对象的引用。
  • 方法区:保存 static 变量,类信息,常量信息,永久应用等。
  • 本地方法栈:保存 native 方法。
  • 程序计数器:保存当前线程执行到的字节码行号,上下文切换用的。还包括下一条需要执行的执行,分支和异- 常处理。

Java 内存模型(JMM)

是一组规范,需要各个 JVM 的实现来遵守 JMM 规范,以便于开发者可以利用这些规范,更方便地开发多线程程序。

如果没有 JMM 来规范,那么可能经过不同 JVM 的不同规则的重排序之后,导致不同的虚拟机上运行的结果不一样,那是很大的问题。

JMM 最重要的三个内容:

  • 重排序
  • 可见性
  • 原子性

Java 对象模型

Java 对象模型

方法区:存储类的信息。
堆:存储类实例化的对象。
栈:存放对象引用的地方。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容