目录

  • 1. 内存中的栈与堆
  • 2.栈的优点


1. 内存中的栈与堆

栈是运行时单位,堆是存储的单位。

栈解决程序的运行问题,即程序如何执行,或者说如何处理数据。

堆解决的是数据存储的问题,即数据怎么放、放在哪儿。

[转帖]12.JVM运行时数据区之虚拟机栈概述_JVM


1.每个线程在创建的时候都会创建一个虚拟机栈。栈是线程私有的。

栈中存储的是一个个栈帧。

一个栈帧对应于一个java方法。

生命周期:

2.生命周期和线程一致。随着线程的创建而创建,随着线程的消亡而消亡。

作用:

3.保存方法的局部变量(8种基本数据类型、对象的引用地址)、部分结果,参与方法的调用和返回。

局部变量注意和成员变量区分开。

[转帖]12.JVM运行时数据区之虚拟机栈概述_JVM_02

2.栈的优点

1.栈只有进栈和出栈两种操作,所以速度很快,仅次于程序计数器。

2.每个方法执行,伴随着进栈。方法执行完成,伴随着出栈。

3.栈不存在GC,因为只存在进栈和出栈两种操作。但是栈存在OOM。

[转帖]12.JVM运行时数据区之虚拟机栈概述_进栈_03