码迷,mamicode.com
首页 > 其他好文 > 详细

JVM运行时数据区

时间:2015-05-05 14:24:25      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:jvm   data-areas   

这是我阅读JVM说明书的笔记,我画了下图来增进我的理解。
技术分享
1.每个独立线程的数据区(非共享)
每个线程的的独立数据区域包括程序计数器(Program Counter Register),JVM栈(JVM Stack)和本地方法区(Native Method Stack)
a.程序计数器:用来控制每个线程的每一次执行
b.JVM栈:包括下图列出的栈帧
c.本地方法区:用来支持本地方法,比如非JAVA语言方法
技术分享
2.被所有线程共享的数据区
所有的线程共享堆和方法区
a.堆:这是我们经常与之打交道的区域,它存储所有的对象,在JVM启动的时候被创建,垃圾收集就在这个区域。
b.方法区:它存储运行时常量池(Runtime Constant Pool)、成员变量(field )和方法内数据(method data)、方法(methods )和构造函数(constructors)的代码。
c.运行时常量池(Runtime Constant Pool):它是由一个存放在一个类文件中的单类或单节口的运行时常量表表示,它包括几种常量,包括编译时知道的的数字字面值(numeric literals)和运行时必须确定的方法和成员变量的引用(method and field references)。
e.栈帧(Frame):当方法被调用时栈帧入栈,栈帧包括 local variable array, Operand Stack, Reference to Constant Pool。
想了解更多信息,请参见官方的JVM specification。

JVM运行时数据区

标签:jvm   data-areas   

原文地址:http://blog.csdn.net/mnmlist/article/details/45501975

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!