Java面試題之類的靜態代碼塊和靜態屬性等的加載順序


如以下面試題:

/**
* @author hjs
* @date 2019/3/62:41
* @Dec
*/
public class B {
public static B t1 = new B();
public static B t2 = new B();
{
System.out.println("父類構造塊");
}
static {
System.out.println("父類靜態塊");
}
}

/**
* @author hjs
* @date 2019/3/62:35
* @Dec
*/
public class A extends B {
public static A t1 = new A();
public static A t2 = new A();
{
System.out.println("構造塊");
}
static {
System.out.println("靜態塊");
}
public static void main(String[] args) {
A t = new A();
}
}

輸出結果:

父類構造塊、父類構造塊、父類靜態塊、父類構造塊、構造塊、父類構造塊、構造塊、靜態塊、父類構造塊、構造塊

B1初始化的:父類構造塊;
B2初始化的:父類構造塊、父類靜態塊
A1初始化的:父類構造塊、構造塊
A2初始化的:父類構造塊、構造塊、靜態塊
main函數創建A時打印的:父類構造塊、構造塊

  

  

結論:父類靜態屬性、父類靜態代碼塊、子類靜態屬性、子類靜態代碼塊、代碼塊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM