数组声明方式对比
三种数组的声明方式在语法格式上并不相同:
public class Demo10 {
public static void main(String[] args) {
int[] arr1 = new int[5];//方式一
int[] arr2 = new int[]{1, 2, 3, 4, 5};//方式二
int[] arr3 = {6,7,8,9,10};//方式三
}
}
方式一:new int[5],创建了一个数组长度为5,并将新创建的数组的引用赋值给变量arr1,这种方式声明后分配了空间但并未赋值
public class Demo10 {
public Demo10() {
}
public static void main(String[] args) {
int[] arr1 = new int[5];
int[] var10000 = new int[]{1, 2, 3, 4, 5};
var10000 = new int[]{6, 7, 8, 9, 10};
}
}
方式二和方式三:在反编译文件中被编译成相同的方式,可见实际上这两者意义相同,方式三是方式二的简化,同样也是通过new,不过这种方式声明后分配了空间同时也进行了赋值
总结:
- int[] arr = new int[5]的方式,只分配了空间并未赋值
- int[] arr = new int[]{1,2,3,4,5}分配空间的同时也进行了赋值
- int[] arr = {1,2,3,4,5}同int[] arr = new int[]{1,2,3,4,5}相同,反编译的内容也相同,可以看出其意义相同,前者是后者的简化
- 也就是说用不用new去创建数组最终编译出来都是使用new创建数组