数组声明属于函数的数组将在内存中?

时间:2015-08-18 09:38:03

标签: java arrays

我读到局部变量在堆栈内存中。并且,数组保存在堆内存中。那么如果我已经声明了一个块或函数的局部数组呢?该数组在哪里保存?请帮我理解。

2 个答案:

答案 0 :(得分:2)

数组存储在堆中。我不相信转义分析可以像在某些对象上一样将它分配到堆栈中。

数组的引用可以在堆栈中。

答案 1 :(得分:2)

不要将数组与引用混淆到数组,这是您在方法体中声明的内容。引用位于方法调用框架内("在堆栈"上),但是数组本身是动态分配的,就像Java中的其他内容一样。 JIT编译器可能会得出结论,直接在堆栈上分配一个小数组会有所回报,但这会进入" advanced"类别,当然不在你的控制范围内。