黑马程序员——如何理解成员变量在堆内,局部变量在栈内?

文章探讨了Java中的内存管理,解释了成员变量存储于堆内存,而局部变量存储于栈内存的原因。通过实例分析,阐述了对象创建时的方法和局部变量的生命周期,以及JVM内存的堆、栈和方法区的角色。同时指出,基础数据类型直接存于栈,引用数据类型的引用存栈,对象存堆,这是一种简化表述。
摘要由CSDN通过智能技术生成

ASP.Net+Android+IO开发S.Net培训、期待与您交流!

在第五天的基础视频里,毕老师讲了一句话:成员变量在堆内存里,局部变量在栈内存里

我有疑惑:

既然成员变量存在于对象中,对象存在于堆中,所以成员变量存在于堆中。那么按照这样的推理,局部变量存在于方法中,而方法存在于对象中,对象存在于堆中,那是不是可以说局部变量存在于堆中?这与老师说的局部变量在栈内存里不符合啊?

然后我猜想:

当对象new出来,实体存在于堆的时候,对象里面的方法是没有出现的,或着只出现方法的声明,方法里面的局部变量并没有创建。等到对象调用此方法时,为了加快运行的速度,方法中的局部变量才会在栈中创建,所以,方法中的局部变量是在栈内的。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值