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.
Java虚拟机运行时数据区的构成下面是虚拟机runtime data areas:由方法区(method area), heap, pc register 和stack, 以及本地方法区(native method area)构成。每个虚拟机实例有一个方法区和一个堆(heap),在一个虚拟机中运行的所有线程共享这两个区。当虚拟机load一个class文件时,.将class的
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.
更多推荐
所有评论(0)