如果想學習Java工程化、高性能及分布式、深入淺出。性能調(diào)優(yōu)、Spring,MyBatis,Netty源碼分析的朋友可以加我的Java高級架構(gòu)進階群:180705916,群里有阿里大牛直播講解技術(shù),以及Java大型互聯(lián)網(wǎng)技術(shù)的視頻免費分享給大家
程序員、編程、軟件開發(fā)、吐槽
很多Java程序員肯定代碼執(zhí)行順序沒搞清楚
不信大家看看執(zhí)行結(jié)果會和你想的一樣嗎總結(jié)
class B extends A ,然后A類也就是父類里面有靜態(tài)代碼塊,普通代碼塊,靜態(tài)方法,靜態(tài)成員變量,普通成員變量,普通方法。
子類也是這樣,然后繼承之后,關(guān)于程序打印輸出的結(jié)果。
涉及到Java類的各種成員的初始化順序。
經(jīng)測試,得到如下結(jié)論:
1.父類【靜態(tài)成員】和【靜態(tài)代碼塊】,按在代碼中出現(xiàn)的順序依次執(zhí)行。
2.子類【靜態(tài)成員】和【靜態(tài)代碼塊】,按在代碼中出現(xiàn)的順序依次執(zhí)行。
3.父類的【普通成員變量被普通成員方法賦值】和【普通代碼塊】,按在代碼中出現(xiàn)的順序依次執(zhí)行。
4.執(zhí)行父類的構(gòu)造方法。
5.子類的【普通成員變量被普通成員方法賦值】和【普通代碼塊】,按在代碼中出現(xiàn)的順序依次執(zhí)行。
6.執(zhí)行子類的構(gòu)造方法。Object祖宗類鎮(zhèn)樓
