java代码块执行顺序
生活随笔
收集整理的這篇文章主要介紹了
java代码块执行顺序
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
父類
public class Father {
public Father() {
System.out.println("父類構(gòu)造PUBLIC father");
}
static {
System.out.println("父類靜態(tài)代碼塊static father");
}
{
System.out.println("父類普通代碼塊CLASS father");
}
}
子類
public class Son extends Father {
public Son() {
System.out.println("子類構(gòu)造PUBLIC son");
}
static {
System.out.println("子類靜態(tài)代碼塊static son");
}
{
System.out.println("子類普通代碼塊CLASS son");
}
public static void main(String[] arg) {
new Son();
new Son();
}
}
運行結(jié)果
java代碼塊執(zhí)行順序:遵循繼承關(guān)系(先父后子)
靜態(tài)代碼塊==>非靜態(tài)代碼塊==>構(gòu)造方法
靜態(tài)代碼塊:類加載時即被執(zhí)行,切只執(zhí)行一次
非靜態(tài)代碼塊:new()實體化對象時被執(zhí)行,先于構(gòu)造執(zhí)行(每實例一個對象執(zhí)行一次)
構(gòu)造方法:new()實體化對象時被執(zhí)行,后于非靜態(tài)代碼塊執(zhí)行(每實例一個對象執(zhí)行一次)
總結(jié)
以上是生活随笔為你收集整理的java代码块执行顺序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BZOJ1797 [Ahoi2009]M
- 下一篇: CasperJS断言