java 變數的初始化問題

2021-06-10 06:25:33 字數 978 閱讀 4798

類變數(類靜態成員): 類被載入時產生;它的生存期是類的生存期;自動初始化(類被載入)

成員變數(類成員):  在使用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)

}

變數的初始化問題

變數的初始化問題 變數初始化,反覆強調的乙個問題,很容易忽略,很容易出錯,下邊看乙個例子 在fun函式裡邊什麼也沒有做,可能基礎稍微牢固一些的朋友能夠看出來,引用了未初始化的變數 m,對,因為這個函式是按值傳遞,傳遞的是複製以後的引數,複製,沒有初始化當然就不行了。在論壇上看到一位仁兄的帖子,編譯通...

Java初始化問題

類載入機制 一 對於被static修飾的類變數 被final修飾。在準備階段給類變數申請記憶體空間的同時就通過constantvalue屬性進行初始化,在呼叫此變數的時候,不會對此類進行初始化。未被final修飾。在初始化階段進行了初始化,通過類構造器 方法進行初始化,只在類使用之前呼叫一次。被動引...

java中變數初始化

首先一些被初始化物件的概念 類變數 類靜態成員 類被載入時產生 它的生存期是類的生存期 自動初始化 類被載入 成員變數 類成員 在使用new 建立該類例項時產生 它的生存期與該類例項物件的生存期相同 自動初始化 構造方法被呼叫 區域性變數 類的方法中的變數 該方法被呼叫時產生 在該方法退出後結束 必...