摘要:子類非靜態(tài)代碼塊,接著執(zhí)行子類的構(gòu)造方法。總之一句話,靜態(tài)代碼塊內(nèi)容先執(zhí)行,接著執(zhí)行父類非靜態(tài)代碼塊和構(gòu)造方法,然后執(zhí)行子類非靜態(tài)代碼塊和構(gòu)造方法歡迎加入學(xué)習(xí)交流群,大家一起學(xué)習(xí)交流。
java 靜態(tài)代碼塊 靜態(tài)方法區(qū)別
靜態(tài)代碼塊是主動執(zhí)行的,在項目啟動的時候就初始化, 靜態(tài)方法在類加載的時候 就已經(jīng)加載 可以用類名直接調(diào)用,兩者的區(qū)別就是:靜態(tài)代碼塊是自動執(zhí)行的;靜態(tài)方法是被調(diào)用的時候才執(zhí)行的.
代碼執(zhí)行順序
class Parent { { System.out.println("parent block");//3 } static { System.out.println("parent static block");//1 } public Parent() { System.out.println("parent constructor");//4 } } class Child extends Parent { { System.out.println("child block");//5 } static { System.out.println("child static block");//2 } public Child() { System.out.println("child constructor");//6 } } public class Test{ public static void main(String[] args) { new Child(); } }
輸出結(jié)果:
parent static block
child static block
parent block
parent constructor
child block
child constructor
對象的初始化順序:
執(zhí)行父類靜態(tài)的內(nèi)容
執(zhí)行子類的靜態(tài)的內(nèi)容
父類非靜態(tài)代碼塊,接著執(zhí)行父類的構(gòu)造方法。
子類非靜態(tài)代碼塊,接著執(zhí)行子類的構(gòu)造方法。
總之一句話,靜態(tài)代碼塊內(nèi)容先執(zhí)行,接著執(zhí)行父類非靜態(tài)代碼塊和構(gòu)造方法,然后執(zhí)行子類非靜態(tài)代碼塊和構(gòu)造方法
歡迎加入學(xué)習(xí)交流群569772982,大家一起學(xué)習(xí)交流。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/67713.html
摘要:并發(fā)編程的挑戰(zhàn)并發(fā)編程的目的是為了讓程序運行的更快,但是,并不是啟動更多的線程就能讓程序最大限度的并發(fā)執(zhí)行。的實現(xiàn)原理與應(yīng)用在多線程并發(fā)編程中一直是元老級角色,很多人都會稱呼它為重量級鎖。 并發(fā)編程的挑戰(zhàn) 并發(fā)編程的目的是為了讓程序運行的更快,但是,并不是啟動更多的線程就能讓程序最大限度的并發(fā)執(zhí)行。如果希望通過多線程執(zhí)行任務(wù)讓程序運行的更快,會面臨非常多的挑戰(zhàn):(1)上下文切換(2)死...
摘要:下面是該程序在兩個內(nèi)存模型中的執(zhí)行時序?qū)Ρ葓D在順序一致性模型中,所有操作完全按程序的順序串行執(zhí)行。不保證未同步程序的執(zhí)行結(jié)果與該程序在順序一致性模型中的執(zhí)行結(jié)果一致。 前情提要 深入理解Java內(nèi)存模型(二)——重排序 數(shù)據(jù)競爭與順序一致性保證 當(dāng)程序未正確同步時,就會存在數(shù)據(jù)競爭。java內(nèi)存模型規(guī)范對數(shù)據(jù)競爭的定義如下: 在一個線程中寫一個變量, 在另一個線程讀同一個變量,...
摘要:前提深入理解內(nèi)存模型程曉明著,該書在以前看過一遍,現(xiàn)在學(xué)的東西越多,感覺那塊越重要,于是又再細(xì)看一遍,于是便有了下面的讀書筆記總結(jié)。同步同步是指程序用于控制不同線程之間操作發(fā)生相對順序的機制。線程之間的通信由內(nèi)存模型控制。 showImg(https://segmentfault.com/img/remote/1460000013474312?w=1920&h=1271); 前提 《深...
摘要:前提深入理解內(nèi)存模型程曉明著,該書在以前看過一遍,現(xiàn)在學(xué)的東西越多,感覺那塊越重要,于是又再細(xì)看一遍,于是便有了下面的讀書筆記總結(jié)。同步同步是指程序用于控制不同線程之間操作發(fā)生相對順序的機制。線程之間的通信由內(nèi)存模型控制。 showImg(https://mmbiz.qpic.cn/mmbiz_jpg/1flHOHZw6RtPu3BNx3zps1JhSmPICRw7QgeOmxOfTb...
摘要:并發(fā)編程關(guān)鍵字解析解析概覽內(nèi)存模型的相關(guān)概念并發(fā)編程中的三個概念內(nèi)存模型深入剖析關(guān)鍵字使用關(guān)鍵字的場景內(nèi)存模型的相關(guān)概念緩存一致性問題。事實上,這個規(guī)則是用來保證程序在單線程中執(zhí)行結(jié)果的正確性,但無法保證程序在多線程中執(zhí)行的正確性。 Java并發(fā)編程:volatile關(guān)鍵字解析 1、解析概覽 內(nèi)存模型的相關(guān)概念 并發(fā)編程中的三個概念 Java內(nèi)存模型 深入剖析volatile關(guān)鍵字 ...
摘要:前情提要深入理解內(nèi)存模型一基礎(chǔ)編譯器運行時會對指令進行重排序。以處理器的猜測執(zhí)行為例,執(zhí)行線程的處理器可以提前讀取并計算,然后把計算結(jié)果臨時保存到一個名為重排序緩沖的硬件緩存中。請看下篇深入理解內(nèi)存模型三順序一致性 前情提要 深入理解Java內(nèi)存模型(一)——基礎(chǔ) Java編譯器、運行時會對指令進行重排序。這種重排序在單線程和多線程情況下分別有什么影響呢? 數(shù)據(jù)依賴性 如果兩個操...
閱讀 3286·2021-11-24 09:38
閱讀 2159·2021-11-23 09:51
閱讀 1751·2021-10-13 09:39
閱讀 2626·2021-09-23 11:53
閱讀 1410·2021-09-02 15:40
閱讀 3660·2019-08-30 15:54
閱讀 1137·2019-08-30 13:04
閱讀 2567·2019-08-30 11:01