在Java中不使用'new'关键字声明数组
问题内容:
以下两个声明之间有什么区别?
int arr[] = new int [5];
和
int arr1[] = {1,2,3,4,5};
是arr1
在堆栈上还是在堆上声明?
问题答案:
一个明显的区别是,一个全为零,另一个包含[1..5]。
但这是唯一的区别。两者都是5元素整数数组,都以相同的方式分配。用大括号声明不只是语法上的方便new
。
请注意,只有在声明数组时才能使用此形式:
int[] blah = {}
但不是
int[] blah;
blah = {};
要么
return {};
对象(数组是对象)在堆上分配。