Java运行时数据区

学习了一些与Java虚拟机相关的比较基本的知识,还是得写一写加深印象。


运行时数据区

程序计数器:线程私有,生命周期与线程的生命周期一样。程序计数器用于标记线程执行的字节码的位置。字节码解释器,通过改变计数器的值来选取执行的字节码指令如分支、循环、跳转、线程恢复。

虚拟机栈:线程私有,生命周期与线程的生命周期一样。在线程调用Java方法时创建栈帧用于储存局部变量表、操作数栈、动态链接、方法出口。其中局部变量表存放了基本数据类型,对象引用和returnAdress类型。

本地方法栈:线程私有,生命周期与线程的生命周期一样。线程调用本地方法时创建栈帧,过程类似于虚拟机栈。

堆:线程共享,用于储存实例变量。

方法区:线程共享。用于存储编译后Java方法的类相关的东西,类信息、常量、静态变量等。运行时常量池在方法区中,包含字面量、符号引用、直接引用。常量池在Class文件中,包含字面量和符号引用,常量池在类加载进方法区运行时,会被放进运行时常量池。

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

推荐阅读更多精彩内容