1.初始化
1.1静态初始化
- 使用静态初始化时,只指定初始化时的值,不指定数组长度。而数组长度将由系统自动分配。
int[] arrayName = new int[] {1,2,3};
Object obj1; obj1=new String[] {"bob","Alice"};
1.2动态初始化
- 动态初始化只指定数值的长度,不指定值。系统将会自动为数组分配值,不同类型的数值分配的值不一样。
int arrayName = new int[3];
2.深入数组
- 数组是一种引用数据类型,数组引用变量只是一个引用,数组中的数据和引用变量在内存中是分开来存放的。引用变量存放在栈中,数据存在堆中。
- 数组引用变量只是一个引用,这个引用变量可以指向任何有效的内存,只有当引用变量指向了有效的内存后,才可以通过这个变量访问数据。
- 当堆内存中存放的数组值不再有任何变量指向自己的时候,垃圾回收器会回收该数组。因此如果要让数组不占内存,只需要将其赋值为
null
,也就相当于切断了该数组引用变量和实际数组之间的引用关系,实际的数值也就成为了垃圾。 - Java语言实际上并不存在多维数组,它只是一个一维数组引用了另外一个一维数组。
3.Java8增强工具类:Arrays
看API文档去