2.5-运行时数据区

java运行时数据区分为虚拟机管理生死和线程绑定两类数据区

1.虚拟机负责创建销毁

1.1堆区域

存放类实例对象和数组,垃圾回收发生的区域,另外方法区在逻辑上也属于这个区域

1.2方法区

保存类结构信息如运行时常量池,属性,方法信息,方法和构造器的代码,用于类、实例、接口初始化的特殊方法信息

1.3运行时常量区

包含几种常量,从编译时已知的数字文本到运行时解析的方法和字段引用。

2.随线程创建销毁

2.1pc寄存器

每个线程都有,包含虚拟机当前执行的方法的指令的地址,native方法则未定义

2.2java 虚拟机栈

包含栈帧,存放本地变量和部分结果,栈帧可能被分配到堆中,栈的大小可以时固定或者动态增减,固定情况下可能会有StackOverFlowError,动态则是OutOfMemoryError

2.3本地方法栈

主要是用于支持本地(native)方法,不支持本地方法的虚拟机不需要提供本地放发栈。本地方法栈可能采用“cstacks”,栈的大小可以时固定或者动态增减,固定情况下可能会有StackOverFlowError,动态则是OutOfMemoryError。

你可能感兴趣的:(2.5-运行时数据区)