日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Javaamp;amp;(面试题)初始化顺序总结

發(fā)布時間:2025/6/16 java 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Javaamp;amp;(面试题)初始化顺序总结 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1 ?無繼承情況下的Java初始化順序: class?Sample { ??????Sample(String s) ??????{ ????????????System.out.println(s); ??????} ??????Sample() ??????{ ????????????System.out.println("Sample默認(rèn)構(gòu)造函數(shù)被調(diào)用"); ??????} } class?Test{ ??????static?Sample?sam=new?Sample("靜態(tài)成員sam初始化"); ??????Sample?sam1=new?Sample("sam1成員初始化"); ??????static{ ????????????System.out.println("static塊運(yùn)行"); ????????????if(sam==null)System.out.println("sam is null"); ????????????sam=new?Sample("靜態(tài)塊內(nèi)初始化sam成員變量"); ????????????} ??????Test() ??????{ ????????????System.out.println("Test默認(rèn)構(gòu)造函數(shù)被調(diào)用"); ??????}
} //主函數(shù) ?public?static?void? main(String? str[]) {
?? ? Test?a=new?Test();
?} 輸出結(jié)果為: 靜態(tài)成員sam初始化 ? ??-----靜態(tài)成員初始化 static塊運(yùn)行 ? ? ? ? ?-----靜態(tài)塊被運(yùn)行 靜態(tài)塊內(nèi)初始化sam成員變量?----靜態(tài)塊運(yùn)行 sam1成員初始化 ? ? ?-----普通成員初始化 Test默認(rèn)構(gòu)造函數(shù)被調(diào)用 ?-----構(gòu)造函數(shù)運(yùn)行

由此能夠得出結(jié)論: a?靜態(tài)成員變量首先初始化(注意。Static能夠看做一個靜態(tài)成員。其運(yùn)行順序和其在類中申明的順序有關(guān)) b 普通成員初始化 c 運(yùn)行構(gòu)造函數(shù)。
對于靜態(tài)成員(static塊能夠看成普通的一個靜態(tài)成員,其并不一定在類初始化時首先運(yùn)行)和普通成員。其初始化順序僅僅與其在類定義中的順序有關(guān),和其它因素?zé)o關(guān)。

比如以下的樣例:

class?Test{ ??????static{ ????????????System.out.println("static 塊 1? 運(yùn)行"); ????????????} ??????static?Sample?staticSam1=new?Sample("靜態(tài)成員staticSam1初始化"); ??????Sample?sam1=new?Sample("sam1成員初始化"); ??????static?Sample?staticSam2=new?Sample("靜態(tài)成員staticSam2初始化"); ??????static{ ????????????System.out.println("static 塊 2? 運(yùn)行"); ????????????} ??????Test() ??????{ ????????????System.out.println("Test默認(rèn)構(gòu)造函數(shù)被調(diào)用"); ??????} ??????Sample?sam2=new?Sample("sam2成員初始化");
}

則結(jié)果為: static 塊 1? 運(yùn)行 靜態(tài)成員staticSam1初始化 靜態(tài)成員staticSam2初始化 static 塊 2? 運(yùn)行? ?? ? ? ? ? ? ? ? ? ? ?--------靜態(tài)成員 sam1成員初始化 sam2成員初始化 ?? ? ? ? ? ? ? ? ? ? ?--------普通成員 Test默認(rèn)構(gòu)造函數(shù)被調(diào)用 ?? ? ? ? ? ? ? ? ? ? ?--------構(gòu)造函數(shù)

2 Java繼承情況下的初始化順序:
class?Test{ ??????static{ ????????????System.out.println("父類static 塊 1? 運(yùn)行"); ????????????} ??????static?Sample?staticSam1=new?Sample("父類 靜態(tài)成員staticSam1初始化"); ??????Sample?sam1=new?Sample("父類 sam1成員初始化"); ??????static?Sample?staticSam2=new?Sample("父類 靜態(tài)成員staticSam2初始化"); ??????static{ ????????????System.out.println("父類 static 塊 2? 運(yùn)行"); ????????????} ??????Test() ??????{ ????????????System.out.println("父類 Test默認(rèn)構(gòu)造函數(shù)被調(diào)用"); ??????} ??????Sample?sam2=new?Sample("父類 sam2成員初始化");
}
class?TestSub?extends?Test { ??????static?Sample?staticSamSub=new?Sample("子類 靜態(tài)成員staticSamSub初始化"); ??????TestSub() ??????{ ????????????System.out.println("子類 TestSub 默認(rèn)構(gòu)造函數(shù)被調(diào)用"); ??????} ??????Sample?sam1=new?Sample("子類 sam1成員初始化"); ??????static?Sample?staticSamSub1=new?Sample("子類 靜態(tài)成員staticSamSub1初始化"); ?????? ??????static{System.out.println("子類 static 塊? 運(yùn)行");} ??????Sample?sam2=new?Sample("子類 sam2成員初始化"); }
運(yùn)行結(jié)果: 父類 static 塊 1? 運(yùn)行 父類 靜態(tài)成員staticSam1初始化 父類 靜態(tài)成員staticSam2初始化 父類 static 塊 2? 運(yùn)行 ?? ? ? ? ? ? ? ? ? ? ? ?--------父類靜態(tài)成員初始化 子類 靜態(tài)成員staticSamSub初始化 子類 靜態(tài)成員staticSamSub1初始化 子類 static 塊? 運(yùn)行 ?? ? ? ? ? ? ? ? ? ? ? ?-------子類靜態(tài)成員初始化 父類 sam1成員初始化 父類 sam2成員初始化 父類 Test默認(rèn)構(gòu)造函數(shù)被調(diào)用 ? ? ?? ?? ? ? ? ? ? ? ? ? ? ? ?-------父類普通成員初始化和構(gòu)造函數(shù)運(yùn)行 子類 sam1成員初始化 子類 sam2成員初始化 子類 TestSub 默認(rèn)構(gòu)造函數(shù)被調(diào)用 ?? ? ? ? ? ? ? ? ? ? ? ?-------子類普通成員初始化和構(gòu)造函數(shù)運(yùn)行

由此得出Java初始化順序結(jié)論: 1 繼承體系的全部靜態(tài)成員初始化(先父類,后子類) 2 父類初始化完畢(普通成員的初始化-->構(gòu)造函數(shù)的調(diào)用) 3 子類初始化(普通成員-->構(gòu)造函數(shù))

Java初始化順序如圖:

總結(jié)

以上是生活随笔為你收集整理的Javaamp;amp;(面试题)初始化顺序总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。