问题描述
通常,在java中,new关键字用于创建数组,但这也是一种做到这一点的方法,因此,我很好奇此数组将在Java中存储在堆栈中还是在堆内存中
解决方法
如评论中所述:
int[][][] arr = { { { 1,2 },{ 3,4 } },{ { 5,6 },{ 7,8 } } };
是语法糖吗
int[][][] arr = new int[][][] { { { 1,8 } } };
在两种情况下,变量arr
都分配在堆栈上(如果它是局部变量);但是arr
引用的实际数组对象是分配在堆上的。
数组是一个对象,所以
变量+指针进入堆栈
实际值进入堆
,数组对象始终存储在堆内存中。