2012-11-20 103 views
3

在Java中,如果int類型的變量沒有初始化,我會怎麼辦?(我知道如果我在初始化之前直接使用x,它不會讓我編譯)?基元的默認值

說,如果我這樣做:

int x; 

和怎麼樣

int[] x; 

感謝

+1

你會希望得到熟悉JLS或[Java語言規範](http://docs.oracle.com/javase/specs/)文件,因爲這個問題和許多其他的Java的奧祕都很好,並在那裏完整闡述。 –

回答

2

X在 「INT X」 會自動初始化爲0; 中的x爲「int []×」自動初始化爲空,因爲x實際上是一個參考

但是編譯器將提示來初始化變量:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    The local variable a may not have been initialized 
    The local variable a may not have been initialized 

    at initialization.main(initialization.java:6) 
+0

真棒,但如果它在一個方法內會改變嗎? – vtshadow

+2

@vtshadow是的,默認值只適用於成員變量。編譯器要求您顯式初始化局部變量,因爲它們沒有默認值。 –

4

實例變量將被默認爲一個「合理的'價值。局部變量將包含垃圾。

閱讀專題here

3

int x默認值是0

對於基本類型,請參閱本link

int[] xnull