Java 内存模型(Java Memory Model,简称 JMM)是 Java 虚拟机规范中定义的一种抽象模型,它的主要目的是屏蔽掉各种硬件和操作系统的内存访问差异,实现让 Java 程序在各种平台下都能达到一致的内存访问效果。 在 JMM 中,最核心的两个概念就是主内存(Main Memory)和工作内存(Working Memory)。理解它们的区别,是理解 Java 并发编程(如可见性、 关键字)的基础。 以下是它们的核心区别和详细解析: --- 1. 核心概念定义 主内存(Main Memory): 主内存是所有线程共享的内存区域。 Java 中所有的共享变量(包括实例变量、静态字段、数组元素等,但不包括局部变量和方法参数,因为它们是线程私有的)都存储在主内存中。 工作内存(Working Memory): 工作内存是每个线程私有的内存区域。 工作内存中保存了该线程使用到的主内存变量的副本。 线程对变量的所有操作(读取、赋值等)都必须在工作内存中进行,而不能直接读写主内存中的变量。 --- 2. 主内存与工作内存的核心区别 可以通过以下几个维度来对比它们的区别: | ...