靜態塊與構造

2021-09-02 12:22:17 字數 569 閱讀 6831

下面程式答案

public class b

public static b t1 = new b();

public static b t2 = new b();

static

system.out.println("構造塊");

system.out.println("靜態塊");

public static void main(string args)

b t = new b();

說實話:我開始以為是:靜態塊 構造塊 構造塊 構造塊

正確答案是 :

構造塊 構造塊 

靜態塊構造塊

答案分析

如果沒有 b t=new b()

類會有乙個初使化順序,類自身初使化順序是定義順序,從上至下

初使化程式:

t1 = new b(); ---->

t2 = new b();--->靜態塊

後面多乙個 

b t=new b() 最後構造 

類的載入過程:

構造塊 靜態塊

構造塊 靜態塊 static靜態塊在類載入的時候執行,且只執行一遍。靜態變數也在類載入的時候初始化 public class test public static void main string args 輸出 12 構造塊在類初始化的時候執行 public class test public s...

靜態塊》main 構造塊》構造方法

用static申明,jvm載入類時執行,僅執行一次 構造塊 類中直接用 定義,每一次建立物件時執行 執行順序優先順序 靜態塊 main 構造塊 構造方法 靜態塊按照申明順序執行,所以先執行publicstaticb t1 newb 該語句建立物件,則又會呼叫構造塊,輸出構造塊 接著執行public ...

建構函式,靜態塊,匿名構造塊

1,靜態塊 隨著jvm載入類的時候載入而執行 不管new多少次,只執行一次 如果乙個類中有多個static修飾的靜態 塊,按照先後順序執行。例 public class b public b static public static b t3 new b public static void mai...