4 回答

TA貢獻2條經驗 獲得超4個贊
這是由于java設計之初為了契合用戶習慣做得妥協(也可以說是優化)。
大家都知道java是1995年設計出來的,相比c(1972年)、c++(1983年)這些語言來說是后起之秀。而c、c++定義數組習慣使用 int a[] = {1, 2, 3}; 這樣的方式。因此java也順勢繼承了下來。
java作為純面向對象語言,同時數組在java中以對象形式存在。這種寫法咋看之下違背了對象創建的方式,而它實際上只是一種語法糖(簡化寫法)。編譯器遇到 int?a[]?=?{1,?2,?3}; 會編譯成和 int a[]?=?new?int[]?{1,?2,?3}; 完全一樣的中間代碼。
因此 int?a[]?=?{1,?2,?3}; 和 int a[]?=?new?int[]?{1,?2,?3}; 實際上是等價的,任何一種寫法都能正確編譯,所以當然不會報錯了。

TA貢獻2條經驗 獲得超7個贊
Java中定義數組的方式有三種:
int[]?arr1=new?int[10]; ?
int[]?arr2=new?int[]{1,2,3,4,5,6}; ?
int[]?arr3={1,2,3,6}; ?
第一種在定義時確定下數組的長度,java中數組長度一旦被定義了就不能在改變它的長度length,基本類型的數組,其中的元素的默認值為基本類型的默認值,比如說int默認值為0,這里面所有元素的默認值都為0,引用類型的數組其元素的默認值為null;
第二組定義方式是將數組定義時,同時將數組內部元素給確定下來;
第三種與第二種的結果相同,只不過是定義方式不同而已,你可以理解為,同一個結果只不過是不同的實現罷了.不用太糾結,

TA貢獻3593條經驗 獲得超0個贊

TA貢獻12條經驗 獲得超117個贊
嗯……我該怎么解釋呢,右邊有大括號的時候,我們都是用第一種方法的,下面的方法我們是用來定義空數組的
int[] b=new int[5];
而你的第二種定義方式,我還真的第一次見,不好意思,讓你見笑了
添加回答
舉報