1. 编译器不允许指定数组的大小
int[] a1;
既然编译器不允许指定数组的大小,现在 a1 拥有的只是对数组的一个引用,且未给该数组对象本身分配任何空间。为了给数组创建对应的存储空间,必须写初始化表达式。
int[] a1 = {1, 2, 3, 4, 5};
那么,为什么还在没有数组的时候定义一个数组引用呢?
int[] a2;
在 Java 中可以将一个数组赋值给另一个数组:
a2 = a1;
这样真正实现的仅仅是复制了一个引用。
2. final 数组
final 修饰对象引用,或者数组(数组也是一种引用),此对象引用不可以再指向别的对象。
final int[] b = {1,2};
b[1]++; // 允许,b[1] == 3,数组内部的元素可变
b = new int[3]; // 不允许,