存储位置问题

存储位置问题

老师,数字10不是存放在常量池里面吗,为什么放在栈呢

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
可莉我女儿 提问者 2021-05-19 15:37:22

如果int a=10,a=2;这个时候,10被释放了吗

好帮手慕小尤 2021-05-19 14:47:16

同学你好,当声明是基本类型的变量的时,其变量名及值(变量名及值是两个概念)是放在JAVA虚拟机栈中。如果值在-128-127之间会存储到常量池中,但变量名是存储在栈中的。

祝学习愉快!

  • 提问者 可莉我女儿 #1

    如果int a=10,a是存放在栈里面,那么10呢

    2021-05-19 14:49:41
  • 好帮手慕小尤 回复 提问者 可莉我女儿 #2

    同学你好,1、在-128-127之间的数据会存储在常量池中,-128-127外的会存储在栈中。

    2、因10是储存在常量池中,并不会被释放,而是在常量池中重新创建一个2赋值给a变量。

    祝学习愉快!

    2021-05-19 16:59:23
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师