int[] array1=new int[]{1,2,3,4};
1 这是静态赋值。也就是一开始就为数组指定好长度 ,并赋好值。这样是不会越界的,
但是如果你再写array1[4]=5;
那么System.out.println(Arrays.toString(array1));的时候就会出现
ArrayIndexOutOfBoundsException 了。因为你指定的下标4超过一开始的3(下标从0开始算)
int[] array2=new int[4];
array2[0]=1;
array2[1]=2;
array2[2]=3;
array2[3]=4;
2 这是动态赋值,一开始只是指定长度,并未赋值。通过array2[0]=1的形式手动赋值,同理,
如果再写array2[4]=5,那么也会出现ArrayIndexOutOfBoundsException异常。
3 总结:
所以说不管静态赋值,还是动态赋值,只要你数组的下标超过了你原来设定的长度,那么就会出现数组下标越界的异常。