函数的返回值是否在没有存储在任何变量中时占用内存?

时间:2013-07-12 16:19:19

标签: java heap

public class testClass{

public static void main(String[] args){
    System.out.println("Output is: "+retInt());
}

public static int retInt(){
    return 1;
}

}

print语句中+retInt()的值是否占用内存空间?如果是,那么 - 在堆栈中还是在java堆中?

1 个答案:

答案 0 :(得分:0)

int值不是对象。它们不能靠自己进行内存管理;没有垃圾收集可以刮掉剩余的int值。使用Integer对象的部分开销是它们需要允许垃圾收集所需的类型和内存管理信息。

在这种情况下,int存在于堆栈中。 (并通过堆栈指针进行管理;不是自己管理)