初始化順序

2021-08-31 16:31:48 字數 780 閱讀 6754

在類的內部,變數定義的順序決定了初始化的順序.即使變數定義散布於方法定義之間,它們仍會在任何方法呼叫之前得到初始化.

無論建立多少個物件,靜態資料只占用乙份儲存區域.靜態變數初始化只有在必要時才會執行,比如有類table,如果不建立table物件也不引用table的靜態方法,那麼類table的靜態變數永遠也不會被建立.只有在第乙個物件被建立或者第一次引用時,他們才會被初始化.

變數的初始化順序 靜態變數(靜態塊)->非靜態變數(非靜態塊)->構造器

package sinhen.base;

public class house

}class table

static cup cup3 = new cup(3);

cup cup4 = new cup(4);

cup cup5;

cup cup6 = new cup(6);

private int idx;

public table(int idx)

public static void addcup(int cupidx)

}class cup

}

執行結果

cup 1

cup 2

cup 3

cup 4

cup 5

cup 6

table 1

cup 4

cup 5

cup 6

table 2

初始化順序

上次面試碰到一面試題,雖然知道但是感覺還是有必要記錄下來,利己利民,題目是關於初始化順序的,也許對很多初學者還是有點用處的。閒話不多說,先上 package initialseq public class parent public parent public int method package ...

初始化順序

初始化,記憶體模型,成員變數,靜態變數,區域性變數,方法 初始化順序,靜態變數 按照類中定義的順序,先父後子 成員變數 按照類中定義的順序 建構函式 其他方法。建立物件時構造器的呼叫順序是 先初始化靜態成員 先父後子 初始化父類成員變數,然後呼叫父類構造器,再初始化自己成員變數,最後呼叫自身構造器。...

關於初始化及初始化順序

首先,類的成員變數會被自動初始化,並且會在構造器被呼叫前發生,如下 public class testinitialization public static void main string args 如下 主類 public class staticinitialization 呼叫main之前...