以下两个声明有区别吗?
int arr[] = new int [5];
和
int arr1[] = {1,2,3,4,5};
arr1
是声明在栈上还是堆上?
最佳答案
明显的区别是一个全为零,另一个包含[1..5]。
但这是唯一的区别。两者都是 5 元素 int 数组,都以相同的方式分配。用大括号声明只是语法上的方便,没有 new
。
注意,这种形式只能在声明数组时使用:
int[] blah = {}
但不是
int[] blah;
blah = {};
或
return {};
对象(数组就是对象)在堆上分配。
关于java - 在 Java 中不使用 'new' 关键字声明数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39032577/