摘要:子類非靜態代碼塊,接著執行子類的構造方法。總之一句話,靜態代碼塊內容先執行,接著執行父類非靜態代碼塊和構造方法,然后執行子類非靜態代碼塊和構造方法歡迎加入學習交流群,大家一起學習交流。
java 靜態代碼塊 靜態方法區別
靜態代碼塊是主動執行的,在項目啟動的時候就初始化, 靜態方法在類加載的時候 就已經加載 可以用類名直接調用,兩者的區別就是:靜態代碼塊是自動執行的;靜態方法是被調用的時候才執行的.
代碼執行順序
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(); } }
輸出結果:
parent static block
child static block
parent block
parent constructor
child block
child constructor
對象的初始化順序:
執行父類靜態的內容
執行子類的靜態的內容
父類非靜態代碼塊,接著執行父類的構造方法。
子類非靜態代碼塊,接著執行子類的構造方法。
總之一句話,靜態代碼塊內容先執行,接著執行父類非靜態代碼塊和構造方法,然后執行子類非靜態代碼塊和構造方法
歡迎加入學習交流群569772982,大家一起學習交流。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67713.html
摘要:并發編程的挑戰并發編程的目的是為了讓程序運行的更快,但是,并不是啟動更多的線程就能讓程序最大限度的并發執行。的實現原理與應用在多線程并發編程中一直是元老級角色,很多人都會稱呼它為重量級鎖。 并發編程的挑戰 并發編程的目的是為了讓程序運行的更快,但是,并不是啟動更多的線程就能讓程序最大限度的并發執行。如果希望通過多線程執行任務讓程序運行的更快,會面臨非常多的挑戰:(1)上下文切換(2)死...
摘要:下面是該程序在兩個內存模型中的執行時序對比圖在順序一致性模型中,所有操作完全按程序的順序串行執行。不保證未同步程序的執行結果與該程序在順序一致性模型中的執行結果一致。 前情提要 深入理解Java內存模型(二)——重排序 數據競爭與順序一致性保證 當程序未正確同步時,就會存在數據競爭。java內存模型規范對數據競爭的定義如下: 在一個線程中寫一個變量, 在另一個線程讀同一個變量,...
摘要:前提深入理解內存模型程曉明著,該書在以前看過一遍,現在學的東西越多,感覺那塊越重要,于是又再細看一遍,于是便有了下面的讀書筆記總結。同步同步是指程序用于控制不同線程之間操作發生相對順序的機制。線程之間的通信由內存模型控制。 showImg(https://segmentfault.com/img/remote/1460000013474312?w=1920&h=1271); 前提 《深...
摘要:前提深入理解內存模型程曉明著,該書在以前看過一遍,現在學的東西越多,感覺那塊越重要,于是又再細看一遍,于是便有了下面的讀書筆記總結。同步同步是指程序用于控制不同線程之間操作發生相對順序的機制。線程之間的通信由內存模型控制。 showImg(https://mmbiz.qpic.cn/mmbiz_jpg/1flHOHZw6RtPu3BNx3zps1JhSmPICRw7QgeOmxOfTb...
摘要:并發編程關鍵字解析解析概覽內存模型的相關概念并發編程中的三個概念內存模型深入剖析關鍵字使用關鍵字的場景內存模型的相關概念緩存一致性問題。事實上,這個規則是用來保證程序在單線程中執行結果的正確性,但無法保證程序在多線程中執行的正確性。 Java并發編程:volatile關鍵字解析 1、解析概覽 內存模型的相關概念 并發編程中的三個概念 Java內存模型 深入剖析volatile關鍵字 ...
摘要:前情提要深入理解內存模型一基礎編譯器運行時會對指令進行重排序。以處理器的猜測執行為例,執行線程的處理器可以提前讀取并計算,然后把計算結果臨時保存到一個名為重排序緩沖的硬件緩存中。請看下篇深入理解內存模型三順序一致性 前情提要 深入理解Java內存模型(一)——基礎 Java編譯器、運行時會對指令進行重排序。這種重排序在單線程和多線程情況下分別有什么影響呢? 數據依賴性 如果兩個操...
閱讀 3278·2021-11-24 09:38
閱讀 2152·2021-11-23 09:51
閱讀 1742·2021-10-13 09:39
閱讀 2616·2021-09-23 11:53
閱讀 1402·2021-09-02 15:40
閱讀 3653·2019-08-30 15:54
閱讀 1128·2019-08-30 13:04
閱讀 2561·2019-08-30 11:01