Java虚拟机(三)--运行时数据区

Java虚拟机运行时数据区的构成

下面是虚拟机runtime data areas:

由方法区(method area), heap, pc register 和stack, 以及本地方法区(native method area)构成。

每个虚拟机实例有一个方法区和一个堆(heap),在一个虚拟机中运行的所有线程共享这两个区。

当虚拟机load一个class文件时,.将class的相关信息放入方法区

随着程序的运行,虚拟机逐步将所有的实例放入heap

可见,为了实现实例间的互相调用,方法区和heap必须是可共享的。


当一个线程诞生时,它有自己的pc register (program counter)Java stack

在一个java方法(not native method)运行时,pc register总是存放着下一条要执行的语句。也就是,该线程下一步要调用的语句。

stack 存放着一个java方法(not native method)调用的状态。比如本地变量,该方法的输入参数,中间计算结果,返回结果等等。


下面是关于heap和stack的概括,便于记忆:

Reference types are in heap.

Any primitive type data and references to values on heap (parameters / local variables of method) are on the stack.

Each thread has its own stack.

All threads in the application share same heap.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值