JVM内存模型详解:从堆到元数据区全面.pdfVIP

  • 0
  • 0
  • 约3.55千字
  • 约 7页
  • 2026-05-05 发布于山西
  • 举报

JVM内存模型详解:从堆到元数据区全面.pdf

JVM内存模型如何分配的

JVM内存模型的划分

由于我们生产环境使用的虚拟机HotSpot居多,所以下面的描述都是基于HotSpot虚拟机而言的,

对于其他类型的虚拟机,如JRockit(Oracle)、J9()可能并不太一样

根据虚拟机规范,JVM的内存分为堆、虚拟机栈、本地方法栈、程序计数器、本地方法栈5部分

JDK1.8同JDK1.7比,最大的差别就是:元数据区取代了永久代。元空间的本质和永久代类似,都是对

JVM规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元数据空间并不在虚拟机中,而

是使用本地内存

1.虚拟机栈

1.每个线程有一个私有的栈,随着线程的创建而创建。栈里面存着的是一种叫“栈帧”的东西,每

个方创建一个栈帧,栈帧中存放了局部变量表(基本数据类型和对象)、操作数栈、

方法出口等信息。栈的大小可以固定也可以动态扩展。当栈调用深度大于JVM所允许的范围,

会抛出StackOverflowError的错误

2.虚拟机栈的特点

1.局部变量表随着栈帧的创建而创建,它的大小在编译时确定,创建时只需分配事先规定

文档评论(0)

1亿VIP精品文档

相关文档