所以我知道的是,你聲明數組以下幾種方式:這些不同類型的陣列的脫色是如何工作的?
int[] arr;
將其初始化:
arr = new int [integer]
的語句也可以組合成:
int[] arr = new int[integer];
而且聲明,初始化和填充數組的值的組合似乎很清楚:
int[] arr = {1, 2, 4, 5, 9};
然而,令我百思不解的是,這也適用:
int[] testAr = new int[]{1, 2, 3, 4};
令我百思不解,甚至更多的是同樣的原理與多維數組:
int[][] yarr = new int[][]{ new int[]{1, 2}, new int[]{2, 3}, new int[]{3, 4} };
爲什麼這項工作什麼這裏發生了什麼?是否有理由讓我像過去的兩個版本一樣創建一個數組?另外當我想到它爲什麼可以直接用值直接填充數組時忽略新關鍵字? 我剛開始瞭解對象,這違背了我迄今所知的基本原則。
爲什麼這樣嗎?因爲這就是語言的定義。 – TDG
'new int [] {1,2,3,4}'是創建和初始化數組最常用的方法。沒有'new int []'的方法只是語法糖,但只能在聲明變量的同時才起作用(例如'int [] arr; arr = {1,2,3};'不允許) 。 –
你應該先閱讀JLS [數組初始化程序](https://docs.oracle.com/javase/specs/jls/se8/html/jls-10.html#jls-10.6) – rkosegi