JVM内存模型和结构

JVM内存模型和结构:
1.有些区域随虚拟机的启动而存在
2.有些区域随线程的启动而启动,随线程的结束而销毁

JVM运行时内存结构
JVM内存模型和结构_第1张图片
JVM的内存结构大概分为:

1.堆(Heap):线程共享。所有的对象实例以及数组都要在堆上分配。回收器主要管理的对象。
2.方法区(Method Area):线程共享。存储类信息、常量、静态变量、即时编译器编译后的代码。
3.虚拟机栈(JVM Stack):线程私有。存储局部变量表、操作栈、动态链接、方法出口,对象指针。
4.本地方法栈(Native Method Stack):线程私有。为虚拟机使用到的Native 方法服务。如Java使用c或者c++编写的接口服务时,代码在此区运行。
5.程序计数器(Program Counter Register):线程私有。有些文章也翻译成PC寄存器(PC Register),同一个东西。它可以看作是当前线程所执行的字节码的行号指示器。指向下一条要执行的指令。


堆的作用是存放对象实例和数组。从结构上来分,可以分为新生代和老年代。而新生代又可以分为Eden 空间、From Survivor 空间&#x

你可能感兴趣的:(JVM内存模型和结构)