java中變數初始化

2021-04-27 19:15:41 字數 1432 閱讀 6447

首先一些被初始化物件的概念:

類變數(類靜態成員):

類被載入時產生;它的生存期是類的生存期;自動初始化(類被載入)

成員變數(類成員):

在使用new

建立該類例項時產生;它的生存期與該類例項物件的生存期相同;

自動初始化(構造方法被呼叫)

區域性變數(類的方法中的變數):

該方法被呼叫時產生;

在該方法退出後結束;

必須顯式初始化

1 方法中的變數,不會被自動初始化。比如

main

方法中的變數

index

,定義如

int index;

它不會被自動初始化。

2 當用

new定義一些變數,會自動初始化,如

int d = new int[100];

它自動初始化為0。

各資料型別的陣列自動初始值如下:

byte0

short0

int0

long0l

float0.0f

double0.0d

char/u0000

即數值0

,而非字元

0,因為它是

0~~65535

的序列。字元

0位置在

48上,即

/u0030

booleanfalse

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 關於區域性變數和類成員之間的關係

:如果區域性變數和類成員同名,那麼該方法中認區域性變數。

8boolean

是引用型別和

string

類似吧,初始值為

null

;而boolean

是基本型別,初始值為

false

java中變數初始化

1 類變數 類靜態成員 類被載入時產生 它的生存期是類的生存期 自動初始化 類被載入 成員變數 類成員 在使用new建立該類例項時產生 它的生存期與該類例項物件的生存期相同 2 方法變數是指在方法中宣告的變數,方法變數的修飾詞要麼沒有,有的話永遠只可能有乙個,那就是final,其它任何修飾詞都是不允...

Java 變數初始化順序

tij 第四版在 初始化順序 部分講到,變數定義的先後順序決定了初始化的順序 我認為這句話是不準確的,當然也可能是翻譯者的問題。因為實際上,變數定義的先後順序與初始化順序無關。class cup public class cups cups public static void main strin...

java變數初始化順序

子類 son 父類father。1.先初始化父類的靜態變數或靜態 塊。不分先後,以定義的先後順序為準 2.初始化子類的靜態變數或靜態 塊 3.初始化父類的非靜態變數,執行建構函式 4.初始化子類的非靜態變數,執行建構函式。比如 father fa new son 向上轉型,不用強制型別轉換 fa 呼...