jvm运行时数据区

jvm运行时数据区

程序计数器:可以看作是当前线程所执行字节码的行号指示器。任何确定的时刻一个处理器只会执行一条线程的指令,为了多线程切换后能够恢复到正确的执行位置,每条线程都需要独立的程序计数器,所以程序计数器这块内存是线程私有的。

java虚拟机栈:线程私有的,它的生命周期与线程相同。虚拟机栈描述的是java方法执行的内存模型,每个方法在执行时都会创建一个栈桢用于存储局部变量表、操作数栈、动态链接、方法出口等信息。

局部变量表存储了编译时期可知的各种基本数据类型,对象的引用和returnAddress类型

本地方法栈:它的作用与虚拟机栈类似,区别是虚拟机栈为虚拟机执行java方法服务,本地方法栈为虚拟机使用到的native方法服务。

java堆:是虚拟机所管理的最大一块内存,它是线程共享的。几乎所有对象实例以及数组都是在堆上分配内存的。java堆也是垃圾回收器管理的主要区域。

方法区:也是线程共享的,用于存储已经被虚拟机加载的类型信息、常量、静态变量、即时编译器编译后的代码等数据。



《深入理解JVM》记录。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容