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