java程序初始化顺序
生活随笔
收集整理的這篇文章主要介紹了
java程序初始化顺序
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
? ?java程序初始化工作可以在許多不同的代碼塊(例如靜態(tài)代碼塊,構(gòu)造函數(shù))中完成,它們的執(zhí)行順序如下:父類靜態(tài)變量,父類靜態(tài)代碼塊,子類靜態(tài)變量,子類靜態(tài)代碼塊,父類非靜態(tài)變量,父類非靜態(tài)代碼塊,父類構(gòu)造函數(shù),子類非靜態(tài)變量,子類非靜態(tài)代碼塊,子類構(gòu)造函數(shù)。
?
public class A {static{System.out.println("static A");}{System.out.println("!static A");}A(){System.out.println("construct A");} }public class B extends A{static{System.out.println("static B");}B(){System.out.println("construct B");}{System.out.println("!static B");}public static void main(String[] args){System.out.println("==");new B();} }初始化順序如下:
static A
static B
==
!static A
construct A
!static B
construct B
?
總結(jié)
以上是生活随笔為你收集整理的java程序初始化顺序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解读main()方法中的String[]
- 下一篇: spring31-1: 事务-传播行为