我读到局部变量在堆栈内存中。并且,数组保存在堆内存中。那么如果我已经声明了一个块或函数的局部数组呢?该数组在哪里保存?请帮我理解。
答案 0 :(得分:2)
数组存储在堆中。我不相信转义分析可以像在某些对象上一样将它分配到堆栈中。
数组的引用可以在堆栈中。
答案 1 :(得分:2)
不要将数组与引用混淆到数组,这是您在方法体中声明的内容。引用位于方法调用框架内("在堆栈"上),但是数组本身是动态分配的,就像Java中的其他内容一样。 JIT编译器可能会得出结论,直接在堆栈上分配一个小数组会有所回报,但这会进入" advanced"类别,当然不在你的控制范围内。