JVM(虚拟)内存中的堆和栈

本文详细解释了程序中堆和栈的区别,包括它们在内存分配中的不同作用:栈由编译器自动管理,用于存储基本类型及对象引用;堆则由程序员管理,用于存储Java对象。此外还介绍了栈的基本操作及其先进后出的特点。

堆和栈的区别:
1、程序的内存分配:
(1)栈/堆栈(Stack):编译器自动释放,存储基本类型和对象引用、函数参数值、局部变量
(2)堆(Heap):程序员管理
(3)全局区(Static):全局和静态变量
2、堆栈详解
(1)栈/堆栈实际是一个先进后出的队列,存储基本类型和对象引用、函数参数值、局部变量。
函数进行时分配内存,函数执行完释放,先释放局部变量,从右往左释放参数
堆栈的基本操作:
push() − 推送(存储)在栈上的元素。
pop() − 弹出(访问)堆栈上的元素
peek() − 得到的堆栈顶部的数据元素,但不删除它。
isFull() − 检查堆栈是否满了。
isEmpty() − 检查堆栈是否为空的。
堆是存储java对象,运行时动态创建,全局

转载于:https://www.cnblogs.com/zhuziyu/p/8604021.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值