学习Java之对象在内存的形态的一点体会

在写我对学习java对象类型的运用前,让我们先看一张图,此图我是在下面这个网站找到的: https://blog.csdn.net/u011972171/article/details/80398771 

上图是一个JVM内存模型图,它是用来存储JVM运行时数据的。此图从上向下,依此是:栈区 --> 堆区 --> 方法区。

那么,这些内存区都是用来做什么的呢?下面我们就一个一个的浅显的讲一讲我的理解。

1)、栈区(stack area) —— 用来存放方法执行时的当前方法所使用的局部变量数据和操作数栈(operand stack);操作数栈在执行字节码指令的时候使用,它和通用寄存器在 native CPU 中使用的方式类似。大多数 JVM 字节码通过 pushing,popping,duplicating,swapping,或生产消费值的操作使用操作数栈。(摘抄自:http://blog.51cto.com/7317859/2105402)

stack栈的使用者是线程,每一个线程都会有一个唯一的栈。stack不仅存储方法执行时所需要的局部变量,在栈中还存放着方法执行时的一些环境信息。

未完……

关于方法执行的更详细的信息请参见:https://blog.csdn.net/rusbme/article/details/51217620

猜你喜欢

转载自blog.csdn.net/Anglebeat/article/details/83388227
今日推荐