参考答案
JVM 试图定义一种统一的内存模型,能将各种底层硬件以及操作系统的内存访问差异进行封装,使 Java 程序在不同硬件、以及操作系统上,都能达到相同的并发效果。它分为工作内存和主内存。线程无法对主存储器直接进行操作,如果一个线程要和另外一个线程通信,那么只能通过主存进行交换。
- 程序计数器:当前线程所执行的字节码的行号指示器,用于记录正在执行的虚拟机字节指令地址,线程私有。
- Java虚拟栈:存放基本数据类型、对象的引用、方法出口等,线程私有。
- Native方法栈:和虚拟栈相似,只不过它服务于Native方法,线程私有。
- Java堆:Java内存最大的一块,所有对象实例、数组都存放在java堆,GC回收的地方,线程共享。
- 方法区:存放已被加载的类信息、常量、静态变量、即时编译器编译后的代码数据等。(即永久带),回收目标主要是常量池的回收和类型的卸载,各线程共享。
以上,是JVM面试题【JVM 的内存模型是什么】的参考答案。
输出,是最好的学习方法。
欢迎在评论区留下你的问题、笔记或知识点补充~
—end—