java 類的初始化

2021-06-21 06:51:36 字數 736 閱讀 4129

載入順序:啟動類的static block最先載入(父類靜態成員、靜態**塊—>子類靜態成員、靜態**塊—>父類例項成員、**塊—>父類建構函式—>子類例項成員、**塊—>子類建構函式)

class singleton      

public static singleton getinstence()

}

public class test2

}

輸出:

1

0

分析:

1. 入口singletonmysingleton = singleton.getinstence();開始載入singleton類。

2. 對singleton的所有的靜態變數分配空間,賦預設的值,所以在這個時候,singleton=null、a=0、b=0。注意b的0是預設值,並不是咱們手工為其賦予的的那個0值。

3. 之後對靜態變數賦值,這個時候的賦值就是我們在程式裡手工初始化的那個值了。此時singleton = new singleton();呼叫了構造方法。構造方法裡面a=1、b=1。之後接著順序往下執行。

4. public static int a; 

public static int b =0;

5. a沒有賦值,保持原狀a=1;b被賦值了,b原先的1值被覆蓋了,b=0。類中的靜態塊static塊也是順序地從上到下執行的。

Java 類的初始化

public class person person p new person 1 將 person.class 檔案載入到記憶體 2 在棧記憶體之中為 p 開闢空間 3 在堆記憶體中為 person 物件開闢空間 4 對 person 物件的成員變數進行預設初始化 name null,age 0 ...

java類的初始化

public class finaltest public static int aa static 下面是乙個測試類 public class test 輸出結果 0 當我們將 public static final int a 0 改為 public static int a 0 輸出結果為 p...

Java類初始化2

public class test2 class t t int a 5 static int b 7 class g g 輸出 main starts g starts t starts說明 1 從main進入 輸出 main starts 定義變數t t new t 2 載入類t,初始化類t中的...