JAVA 物件初始化過程 詳解 及 面試題

2021-09-14 03:38:37 字數 1565 閱讀 7983

注:父類及子類的靜態成員和靜態**塊只在程式執行時載入一次類載入過程初始化那,進行靜態變數的賦值)。

輔助類member:

public class member 

}

父類parent:

public class parent 

public parent()

}

子類subclass:

public class subclass extends parent 

public subclass()

}

測試類:}

執行結果:

這是member的構造方法,呼叫者是: parent的靜態成員

parent的靜態**塊

這是member的構造方法,呼叫者是: subclass的靜態成員

sbuclass的靜態**塊

這是member的構造方法,呼叫者是: parent的非靜態成員

parent的非靜態**塊

parent的構造方法

這是member的構造方法,呼叫者是: subclass的非靜態成員

sbuclass非靜態碼塊

subclass的無引數構造方法

這是member的構造方法,呼叫者是: parent的非靜態成員

parent的非靜態**塊

parent的構造方法

這是member的構造方法,呼叫者是: subclass的非靜態成員

sbuclass非靜態碼塊

subclass的無引數構造方法

public class topic 

}class a

public a()

}class b extends a

public b()

}

執行結果:

1        a        2        b        2        b
結果分析:

public class z extends x 

public static void main(string args)

}class x

}class y

}

執行結果:

y     x     y     z

java物件初始化過程

假設有一下類 class test test int n 0 我們知道,任何物件在使用前都會被初始化,方法裡面的區域性變數必須給初始化值才能通過編譯。現在我們來討論一下初始化的過程 對於字段 變數 而言,如果是基本型別,那麼即使不給初始值,都會得到jvm預設的初始值 boolean預設是false,...

Java物件的初始化過程

person p new person zhangsan 20 執行該語句時虛擬機器做了什麼事情?1.因為new用到了person.class檔案,所以會先找到該檔案載入到記憶體中 2 執行該類中的static 塊 如果有的話 給person.class類進行初始化 3 在堆記憶體中開闢空間,分配記...

Java 初始化過程

初始化過程 載入器啟動並且找出匯出類derived的編譯 即名為derived.class的檔案之中 在對它載入的過程中,編譯器注意到它有乙個基類,於是繼續進行基類的載入 基類中的static變數初始化,然後是匯出類的static 如果乙個成員被宣告為 static,它就能夠在它的類的任何物件建立之...