最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java代碼執(zhí)行順序——類的初始化場(chǎng)景

 更新時(shí)間:2023年08月14日 08:58:13   作者:未期  
這篇文章主要為大家介紹了Java代碼執(zhí)行順序類的初始化場(chǎng)景實(shí)例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

示例分析

例一

public class Solution {
    //public static Solution s1=new Solution();
    public Solution(){
        System.out.println("構(gòu)造方法");
    }
    {
        System.out.println("普通代碼塊:blockA");
    }
    static{
        System.out.println("靜態(tài)代碼塊:blockB");
    }
    public static void main(String[] args) {
        System.out.println("hello");
        //Solution s2=new Solution();
    }
}

結(jié)果:

靜態(tài)代碼塊:blockB
hello

分析

? 由于main函數(shù)是一個(gè)靜態(tài)方法,在調(diào)用這個(gè)靜態(tài)方法時(shí),會(huì)對(duì)類Solution進(jìn)行初始化,而類初始化階段,會(huì)對(duì)靜態(tài)變量靜態(tài)代碼塊按照順序執(zhí)行,所以此處會(huì)先執(zhí)行靜態(tài)代碼塊的內(nèi)容,然后輸出”helllo“。

例二

public class Solution {
    public static Solution s1=new Solution();

    public Solution(){
        System.out.println("構(gòu)造方法");
    }

    {
        System.out.println("普通代碼塊:blockA");
    }

    static{
        System.out.println("靜態(tài)代碼塊:blockB");
    }

    public static void main(String[] args) {
        System.out.println("hello");
        //Solution s2=new Solution();
    }
}

結(jié)果:

普通代碼塊:blockA
構(gòu)造方法
靜態(tài)代碼塊:blockB
hello

分析

  • 調(diào)用main靜態(tài)方法時(shí),會(huì)對(duì)類Solution進(jìn)行初始化。
  • 在類Solution內(nèi)部,靜態(tài)變量s1需要new一個(gè)Solution對(duì)象,所以執(zhí)行了相關(guān)的非靜態(tài)的代碼,其中,普通代碼塊的執(zhí)行優(yōu)先于構(gòu)造方法。
  • 在此之后執(zhí)行靜態(tài)代碼塊的代碼,最后輸出"hello"。

例三

public class Solution {
    public static Solution s1=new Solution();

    public Solution(){
        System.out.println("構(gòu)造方法");
    }

    {
        System.out.println("普通代碼塊:blockA");
    }

    static{
        System.out.println("靜態(tài)代碼塊:blockB");
    }

    public static void main(String[] args) {
        System.out.println("hello");
        Solution s2=new Solution();
    }
}

結(jié)果:

普通代碼塊:blockA
構(gòu)造方法
靜態(tài)代碼塊:blockB
hello
普通代碼塊:blockA
構(gòu)造方法

分析:

  • 在例二的基礎(chǔ)上,又有Solution類的對(duì)象s2,new一個(gè)類對(duì)象的應(yīng)該按照靜態(tài)變量——靜態(tài)代碼塊——普通代碼塊——構(gòu)造方法的順序執(zhí)行。但是,由于靜態(tài)變量和靜態(tài)代碼塊在前面已經(jīng)初始化過了,所以此處不用再做,僅僅執(zhí)行普通代碼塊和構(gòu)造方法。

普通new一個(gè)對(duì)象的步驟

public class Solution {
    //public static Solution s1=new Solution();
    public Solution(){
        System.out.println("構(gòu)造方法");
    }
    {
        System.out.println("普通代碼塊:blockA");
    }
    static{
        System.out.println("靜態(tài)代碼塊:blockB");
    }
    public static void main(String[] args) {
        //System.out.println("hello");
        Solution s2=new Solution();
    }
}

結(jié)果:

靜態(tài)代碼塊:blockB
普通代碼塊:blockA
構(gòu)造方法

分析:

  • 按照靜態(tài)變量——靜態(tài)代碼塊——普通代碼塊——構(gòu)造方法的順序執(zhí)行。

包含父類的情況

父類

class FatherClass {
    // 靜態(tài)變量 
    public static String parent_StaticField = "父----靜態(tài)變量";
    // 變量
    public String parent_Field = "父類----普通變量";
    // 靜態(tài)初始化塊
    static {
        System.out.println(parent_StaticField);
        System.out.println("父類------靜態(tài)初始化塊");
    }
    // 初始化塊 
    {
        System.out.println(parent_Field);
        System.out.println("父類-----初始化塊");
    }
    // 構(gòu)造器 
    public FatherClass() {
        System.out.println("父類--構(gòu)造器");
    }
}

 子類

public class SubSon extends FatherClass  {
    // 靜態(tài)變量
    public static String son_StaticField = "子類--靜態(tài)變量";
    // 變量 
    public String son_Field = "子類--變量";
    // 靜態(tài)初始化塊
    static {
        System.out.println(son_StaticField);
        System.out.println("子類--靜態(tài)初始化塊");
    }
    // 初始化塊 
    {
        System.out.println(son_Field);
        System.out.println("子類--初始化塊");
    }
    // 構(gòu)造器
    public SubSon(){
        System.out.println( "子類--構(gòu)造器" );
    }
    public static void main(String[] args) {
        System.out.println("子類-----main方法");
        new SubSon();
    }
}

結(jié)果:

父----靜態(tài)變量
父類------靜態(tài)初始化塊
子類--靜態(tài)變量
子類--靜態(tài)初始化塊
子類-----main方法
父類----普通變量
父類-----初始化塊
父類--構(gòu)造器
子類--變量
子類--初始化塊
子類--構(gòu)造器

結(jié)合一張圖(圖源見水?。?/p>

以上就是Java代碼執(zhí)行順序——類的初始化場(chǎng)景的詳細(xì)內(nèi)容,更多關(guān)于Java執(zhí)行順序類初始化場(chǎng)景的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • SpringCloud Bus消息總線的實(shí)現(xiàn)

    SpringCloud Bus消息總線的實(shí)現(xiàn)

    消息總線是一種通信工具,可以在機(jī)器之間互相傳輸消息、文件等,這篇文章主要介紹了SpringCloud Bus消息總線的實(shí)現(xiàn),Spring cloud bus 通過輕量消息代理連接各個(gè)分布的節(jié)點(diǎn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • 基于Springboot實(shí)現(xiàn)定時(shí)發(fā)送郵件功能

    基于Springboot實(shí)現(xiàn)定時(shí)發(fā)送郵件功能

    這篇文章主要為大家詳細(xì)介紹了基于Springboot實(shí)現(xiàn)定時(shí)發(fā)送郵件功能的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • Java中String能存儲(chǔ)多少個(gè)字符

    Java中String能存儲(chǔ)多少個(gè)字符

    本文主要介紹了Java中字符串長(zhǎng)度的限制,Java中字符串長(zhǎng)度的限制,
    2026-02-02
  • Java中連接數(shù)據(jù)庫方式詳細(xì)步驟記錄

    Java中連接數(shù)據(jù)庫方式詳細(xì)步驟記錄

    這篇文章主要介紹了Java中連接數(shù)據(jù)庫方式的詳細(xì)步驟,包括添加依賴、建立連接、執(zhí)行SQL語句、處理結(jié)果集和關(guān)閉連接,還討論了數(shù)據(jù)庫連接池的使用,需要的朋友可以參考下
    2025-01-01
  • java 線性表接口的實(shí)例詳解

    java 線性表接口的實(shí)例詳解

    這篇文章主要介紹了java 線性表接口的實(shí)現(xiàn)實(shí)例詳解的相關(guān)資料,希望通過本能幫助到大家,需要的朋友可以參考下
    2017-09-09
  • IDEA創(chuàng)建Java Web項(xiàng)目不能及時(shí)刷新HTML或JSP頁面問題

    IDEA創(chuàng)建Java Web項(xiàng)目不能及時(shí)刷新HTML或JSP頁面問題

    這篇文章主要介紹了IDEA創(chuàng)建Java Web項(xiàng)目不能及時(shí)刷新HTML或JSP頁面問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • java 異常之手動(dòng)拋出與自動(dòng)拋出的實(shí)例講解

    java 異常之手動(dòng)拋出與自動(dòng)拋出的實(shí)例講解

    這篇文章主要介紹了java 異常之手動(dòng)拋出與自動(dòng)拋出的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • java中Filter過濾器處理中文亂碼的方法

    java中Filter過濾器處理中文亂碼的方法

    java中Filter過濾器處理中文亂碼的方法,需要的朋友可以參考一下
    2013-05-05
  • SpringCloud 服務(wù)注冊(cè)和消費(fèi)實(shí)現(xiàn)過程

    SpringCloud 服務(wù)注冊(cè)和消費(fèi)實(shí)現(xiàn)過程

    這篇文章主要介紹了SpringCloud 服務(wù)注冊(cè)和消費(fèi)實(shí)現(xiàn)過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • springboot配置https安全連接的方法

    springboot配置https安全連接的方法

    這篇文章主要介紹了springboot配置https安全連接的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01

最新評(píng)論

方山县| 新丰县| 湘潭市| 札达县| 吴桥县| 灌云县| 天镇县| 永靖县| 青铜峡市| 广平县| 杭锦后旗| 沽源县| 肇源县| 嘉定区| 察隅县| 枝江市| 五寨县| 金阳县| 五河县| 翼城县| 汶川县| 呼玛县| 石林| 社旗县| 建德市| 巴林左旗| 凤庆县| 长汀县| 康保县| 安义县| 石渠县| 五常市| 林州市| 平凉市| 金乡县| 巨鹿县| 蒙山县| 安康市| 新昌县| 砚山县| 保亭|