Java内存模型(JMM)高频面试题及详细答案.docxVIP

  • 1
  • 0
  • 约3.85千字
  • 约 6页
  • 2026-09-20 发布于河北
  • 举报

Java内存模型(JMM)高频面试题及详细答案.docx

Java内存模型(JMM)高频面试题及详细答案

1、什么是Java内存模型(JMM)?它的作用是什么?

参考答案:

Java内存模型是一套官方定义的多线程内存读写规范,并不是JVM的内存分区(堆、栈这些),很多人容易把这两者混淆。

它的核心作用只有一个:屏蔽不同硬件、不同操作系统的内存差异,保证Java程序在所有平台上,多线程并发的内存访问行为、结果都是一致的。

简单来说,JMM专门解决多线程场景下的三大核心问题:可见性、有序性、原子性,让开发者不用适配底层硬件的缓存、指令重排差异,只需遵循JMM规范就能写出安全的并发代码。

2、JMM和JVM内存结构(堆、栈、方法区)的区别?

参考答案:

这是两个完全不同的概念,一个是并发规范,一个是内存物理分区。

1)JVM内存结构:是程序运行时的内存空间划分,属于运行时数据区,包含堆、虚拟机栈、本地方法栈、方法区、程序计数器。主要规定了程序数据存放在哪里,是物理层面的内存布局。

2)JMM内存模型:是多线程读写的规则协议,没有实际的内存空间,是逻辑规范。它定义了线程如何从主内存读数据、如何刷新数据到主内存、指令能否重排等规则,专门服务于多线程并发。

通俗总结:JVM内存结构管“数据存哪”,JMM管“多线程怎么读写数据”。

3、JMM的核心内存划分:主内存与工作内存

参考答案:

JMM将内存逻辑上分为两块,所有共享变量的读写都必须遵循这个规则

文档评论(0)

1亿VIP精品文档

相关文档