jvm-tow

2019-07-17  本文已影响0人  何德何能者

JVM的各种内存区域

每当java虚拟机运行程序时,它需要内存来存储许多东西,包括字节码和从加载的类文件中提取的其他信息,程序实例化的对象,方法的参数,返回值,局部变量和计算的中间结果。Java虚拟机将执行程序所需的内存组织到多个运行时数据区域中。

1 方法区

2 堆区

3 堆栈

对于每个线程,JVM将在创建线程时创建运行时堆栈;线程执行的每个方法调用和响应的局部变量都将存储在堆栈中;
对于每个方法的调用,将想堆栈添加单独的条目,我们称之为“堆栈帧”或者“活动记录”方法完成调用后,相应的帧将从堆栈中删除。在完成所有方法调用后,堆栈将变为空,并且在终止线程之前,JVM将销毁改空堆栈; 存储在堆栈中的数据对应的线程时私有的.

jvm_stack2.png

堆栈的结构包含3个部分
1、局部变量数组;
2、操作数堆栈;
3、帧数据;
局部变量数组
它包含方法的所有参数和局部变量。数组中的每个槽都是4个字节;

转载翻译:https://www.waytoeasylearn.com/2016/06/jvm-tutorial-part-2.html

上一篇 下一篇

猜你喜欢

热点阅读