Java虚拟机将Java运行时数据分为六种:
- 程序计数器
是一个数据结构,用于保存当前正在执行程序的内存地址。
Java虚拟机的多线程是通过线程轮流切换并分配处理器时间来实现的。为了线程切换后能恢复到正确的位置,每条线程都需要一个独立的程序计数器,互不影响,所以该区域为“线程私有”。 - Java虚拟机栈
线程私有
与线程生命周期相同,用于存储局部变量表,操作栈,方法返回值。局部变量表放着基本数据类型,还有对象的引用。 - 本地方法栈
和虚拟机栈很像,不同的是他是为虚拟机使用到的Native方法服务。 - Java堆
线程共享
对象实例几乎在这里分配内存 - 方法区
线程共享的区域,储存虚拟机加载的类信息,常量,静态变量,编译后的代码。 - 运行时常量池
代表运行是每个class文件中的常量表。
包括几种常量:编译时数字常量、方法或域的引用。
1307

被折叠的 条评论
为什么被折叠?



