为了账号安全,请及时绑定邮箱和手机立即绑定

Java会分配什么样的内存?

Java会分配什么样的内存?

慕斯709654 2023-05-10 17:10:19
有人用下面提到的场景好心地消除了我对 Java 内存管理的疑虑。当我们为原始数据类型变量赋值时,该值将存储在堆栈内存中。如果我理解错了这个概念,请纠正我。就像下面提到的分配非原始数据类型的值时内存将如何分配一样。Integer a = 3;会在堆栈或堆中创建内存吗?
查看完整描述

1 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

该变量a将位于堆内存或堆栈内存中,具体取决于它是什么类型的变量:

  • 方法或构造函数局部变量(包括参数)- 在堆栈上

  • 实例变量(又名属性或字段)- 在堆上

  • 类变量 - 在堆上。

(为了完整起见,有几个模糊的情况,其中 lambda 或内部类引用封闭范围中的有效最终局部变量。在这些情况下,原始变量内容的副本将存储在堆中。)

Integer表示装箱值的对象将3在堆上。

对该对象的引用的副本存储变量中a的任何位置。在 JVM 的其他地方可能有该引用的其他副本。


查看完整回答
反对 回复 2023-05-10
  • 1 回答
  • 0 关注
  • 123 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信