12.JVM运行时数据区之虚拟机栈概述

1. 内存中的栈与堆

栈是运行时单位,堆是存储的单位。
栈解决程序的运行问题,即程序如何执行,或者说如何处理数据。
堆解决的是数据存储的问题,即数据怎么放、放在哪儿。
在这里插入图片描述
1.每个线程在创建的时候都会创建一个虚拟机栈。栈是线程私有的。
栈中存储的是一个个栈帧。
一个栈帧对应于一个java方法。
生命周期:
2.生命周期和线程一致。随着线程的创建而创建,随着线程的消亡而消亡。
作用:
3.保存方法的局部变量(8种基本数据类型、对象的引用地址)、部分结果,参与方法的调用和返回。
局部变量注意和成员变量区分开。
在这里插入图片描述

2.栈的优点

1.栈只有进栈和出栈两种操作,所以速度很快,仅次于程序计数器。
2.每个方法执行,伴随着进栈。方法执行完成,伴随着出栈。
3.栈不存在GC,因为只存在进栈和出栈两种操作。但是栈存在OOM。
在这里插入图片描述

更多JVM文章请参考我的JVM专栏:https://blog.csdn.net/u011069294/category_10113093.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值