JVM的内存区域划分

Posted 瀧思葉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM的内存区域划分相关的知识,希望对你有一定的参考价值。

(一)包含了哪几个部分?

栈内存:每个线程私有。java方法执行的内存模型。java栈中存放的是一个个栈帧,每一个帧对应一个被调用的方法。栈帧包裹局部变量表、操作数栈、指向运行时常量的引用、方法返回地址、附加信息。当线程执行一个方法时,就会随之创建一个对应的栈帧,并将建立的栈帧压栈。当方法执行完毕之后,便会将栈帧出栈。因此可知,线程当前执行的方法所对应的栈帧必定位于Java栈的顶部

堆内存GC机制,针对的是堆内存】:所有线程公有。存储对象本身以及数组的。

 

方法区:所有线程共享。存储了每个类的信息(包括类名、方法信息、字段信息)。非常重要的部分--->运行时常量池类和接口被加载JVM后,对应的运行时常量池就被创建出来)

程序计数器(PC寄存器):每个线程私有。用来指示执行哪条指令的。

原生方法栈【很少用】:主要用于java与其他语言的通信。

以上是关于JVM的内存区域划分的主要内容,如果未能解决你的问题,请参考以下文章

JVM的内存区域划分

JVM的内存区域划分

JVM的内存区域划分

Java 内存区域划分

JVM的内存区域划分

JVM的内存区域划分