首页 > 编程笔记 > Java笔记 阅读:14

JMM和Java内存结构的区别(新手必看)

JMM 和 Java 内存结构很容易让人混淆,但它们是 Java 中两个截然不同的概念,关注的领域和目的各不相同,下面我们进行详细介绍。

JMM 是一个抽象的概念,它定义了 JVM 在多线程环境中如何处理内存的读写操作,以及线程如何通过内存进行交互。JMM 关注的是变量之间的相互作用和线程如何通过内存进行通信。它提供了一套规则,确保在多核处理器的环境下,程序执行的正确性得以保障。

JMM 的主要功能和目标如下:
Java 内存结构又被称为 JVM 运行时数据区,是 JVM 在执行 Java 程序时用来存储数据和管理内存的实际架构。它定义了 JVM 在执行 Java 程序时如何使用内存,包括各种运行时数据区的划分,如方法区(Method Area)、堆(Heap)空间、栈(Stack)空间、程序计数器(Program Counter)和本地方法栈(Native Method Stack)。

Java 内存结构的主要功能和目标如下:
从本质上讲,JMM 是关于线程并发执行时内存操作的规范,它解决的问题是如何在多线程环境中安全有效地进行内存交互。而 Java 内存结构解决的是程序数据存储的物理或逻辑结构问题,主要用于指导 JVM 应该如何管理内存。

简而言之,JMM 是关于线程如何交互和内存访问规则的高层规范,而 Java 内存结构是关于 JVM 如何存储数据和管理内存的实际架构。

相关文章