
我们都很熟悉Java中的数组,它具有查询快,增删慢的特点。但是通常我们自认为很了解它的用法,却容易忽略一些小细节。今天通过一段代码来简单了解数组初始化中的一些我们容易忽略的地方。
package dailytest; import org.junit.Test; public class ArrayTest { /**
* 数组的初始化方式:
* 动态初始化:int[] arr = new int[5]; 即指定数组长度,由系统给出初始值
* 长度必须指定在右侧
*
* 静态初始化:给定初始值,由系统判断长度,有两种形式:
* int[] arr2 = {1,2,3,4,5};
* int[] arr3 = new int[]{1,2,3,4,5};
*
* 两种形式不能混用,即长度与{}不能共存
*/
@Test
public void test01() {
int[] arr1 = new int[5];
int[] arr2 = {1,2,3,4,5};
int[] arr3 = new int[]{1,2,3,4,5}; //int[] arr4 = new int[5]{1,2,3,4,5};
//int[] arr5 = new int[5]{};
//int[5] arr6 = new int[][];
} /**
* 二维数组
* []的位置很灵活
*/
@Test
public void test02() {
int[][] arr1 = new int[5][6];
//System.out.println(arr1[0][0]); // int[] arr2[] = new int[5][6];
int [] arr3[] = new int[5][6];
int []arr4[] = new int[5][6];
int arr5[] [] = new int[5][6]; /**
* 对于二维数组,只指定一个长度,即一维数组的长度是可以的,它代表5个数组,每个数组里的值都是null
* 为什么是null而不是0
* 因为arr6[0]里面放的是数组,数组的初始化值是null
*/
int[][] arr6 = new int[5][];
for (int i = 0; i < arr6.length; i++) {
System.out.println(arr6[i]); //null
}
//System.out.println(arr6[0][0]); //NullPointException } }