2014-02-10 71 views
3

查看源文件時,我看到了數組初始化的兩種方法。我不知道有沒有數組初始化的區別

int[] value = new int[0]; 

int[] value_next = new int[]{}; 

之間的差異?

+2

沒有什麼區別,我更喜歡第一個。 – Maroun

+4

你的第二行應該說'int [] value_next = {}'至少顯示* some *的優點。 –

+0

@MarkoTopolnik很好! – VWeber

回答

6

其實沒有什麼區別。它在java數組聲明中是Syntactic sugar

第一種類型聲明不太令人困惑,至少對我來說:)。

注意:我不知道爲什麼你給定的長度爲而宣佈。

如果可能,請通過https://stackoverflow.com/a/19558179/1927832獲取一些優勢。

+4

+1糖的東西。 – Juvanis

+1

@Juvanis +1對您的評論「thing」。 – Maroun

+0

這只是一個例子。我在零長度很好的ArrayList的「toArray(T [] a)」中看到它。在凌晨3點進行調試時使用+1, – VWeber

1

絕對沒有區別。

int[] a = new int[0]是優選的,因爲它顯示了創建一個空數組的意圖。

0

不,沒有區別。

兩者都創建一個包含0個元素的數組。

1

沒有區別,但在第二種情況下,你有多餘的[]

我個人更喜歡使用int[] value_next = {}創建一個空數組。

在我看來,int[] value = new int[0];可以在快速閱讀時看起來像是在創建一個數組,其中初始值爲0。在凌晨3點的調試過程中,我非常欣賞清晰度。

+1

。 – Maroun

2

現在證明(和練習):

創建兩個類,每個包含一個聲明。編譯它們以獲得.class文件。
在每兩個創建的文件,這樣做:

javap -c yourClass 

要看到字節碼

現在你可以回答你自己的問題。

+0

+1爲您的任務:D – VWeber

+1

+1教魚如何。現在保存這個答案的文本,並將其應用於每個第10個問題上:) –

+0

@MarkoTopolnik LOL – Maroun