【发布时间】:2016-04-16 06:25:20
【问题描述】:
我在面试中被问到以下问题
考虑以下代码
int i =0Integer e1 = 0
它们将在哪个内存中创建?
据我了解
对于
int i =0原始数据类型进入堆栈内存并
对于
Integer e1 = 0作为包装类的整数进入堆内存
请帮助正确理解?
【问题讨论】:
-
是的,您的理解是正确的。但是 JLS 允许将 -128 到 127 范围内的整数作为静态实例存储在 Integer 类中。
-
对于像
e1这样的局部引用变量,引用本身将在堆栈上,但它所引用的对象将在堆上。