首先一些被初始化物件的概念:
類變數(類靜態成員): 類被載入時產生;它的生存期是類的生存期;自動初始化(類被載入)
成員變數(類成員): 在使用new建立該類例項時產生;它的生存期與該類例項物件的生存期相同;
自動初始化(構造方法被呼叫)
區域性變數(類的方法中的變數): 該方法被呼叫時產生; 在該方法退出後結束; 必須顯式初始化
1 方法中的變數,不會被自動初始化。比如main方法中的變數index,定義如int index; 它不會被自動初始化。
2 當用new定義一些變數,會自動初始化,如 int d = new int[100]; 它自動初始化為0。
各資料型別的陣列自動初始值如下:
byte 0
short 0
int 0
long 0l
float 0.0f
double 0.0d
char /u0000 即數值0,而非字元0,因為它是0~~65535的序列。字元0位
置在48上,即/u0030
boolean false
reference null 如string
3 類成員如果沒有被定義會自動獲取乙個初始值。首先執行宣告的類成員,如果有定義,則取定義值,隨後呼叫建構函式,如果建構函式中對已定義變數重賦值,則取重賦的值。
4 stack型別自動初始化為空。空顯示為,而不是null。
舉例:class test
}通不過編譯。
5 陣列定義
可以如下定義
int iarray = null;
6 靜態塊和類成員定義的優先順序
//仍模糊,靜態塊,或**塊什麼時候呼叫,是在類生成初麼?那應該要比成員變數要早,因此,首先int i = 10;其次 i = 20;
如下:public class test
public static void main(string args)
}執行結果:20 其中static中的i屬於**塊。
7 關於區域性變數和類成員之間的關係: 如果區域性變數和類成員同名,那麼該方法中認區域性變數。
8 boolean是引用型別和string類似吧,初始值為null;而boolean是基本型別,初始值為false。
java中變數初始化
首先一些被初始化物件的概念 類變數 類靜態成員 類被載入時產生 它的生存期是類的生存期 自動初始化 類被載入 成員變數 類成員 在使用new 建立該類例項時產生 它的生存期與該類例項物件的生存期相同 自動初始化 構造方法被呼叫 區域性變數 類的方法中的變數 該方法被呼叫時產生 在該方法退出後結束 必...
java中變數初始化
1 類變數 類靜態成員 類被載入時產生 它的生存期是類的生存期 自動初始化 類被載入 成員變數 類成員 在使用new建立該類例項時產生 它的生存期與該類例項物件的生存期相同 2 方法變數是指在方法中宣告的變數,方法變數的修飾詞要麼沒有,有的話永遠只可能有乙個,那就是final,其它任何修飾詞都是不允...
java 變數的初始化問題
類變數 類靜態成員 類被載入時產生 它的生存期是類的生存期 自動初始化 類被載入 成員變數 類成員 在使用new建立該類例項時產生 它的生存期與該類例項物件的生存期相同 自動初始化 構造方法被呼叫 區域性變數 類的方法中的變數 該方法被呼叫時產生 在該方法退出後結束 必須顯式初始化 1 方法中的變數...