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

Java構(gòu)造代碼塊,靜態(tài)代碼塊原理與用法實例分析

 更新時間:2020年04月15日 10:10:19   作者:隨風(fēng)行云  
這篇文章主要介紹了Java構(gòu)造代碼塊,靜態(tài)代碼塊,結(jié)合實例形式分析了Java構(gòu)造代碼塊,靜態(tài)代碼塊的功能、原理、用法及操作注意事項,需要的朋友可以參考下

本文實例講述了Java構(gòu)造代碼塊,靜態(tài)代碼塊原理與用法。分享給大家供大家參考,具體如下:

本文內(nèi)容:

  • 局部代碼塊
  • 構(gòu)造代碼塊
  • 靜態(tài)代碼塊
  • 補(bǔ)充

 首發(fā)日期:2018-03-28


局部代碼塊:

局部代碼塊用于限制變量的生命周期,如果希望某些變量在某一過程之后直接失效而不希望被后面繼續(xù)操作時,可以使用局部變量來限制變量的生命周期帶局部代碼塊中


構(gòu)造代碼塊:

  • 構(gòu)造函數(shù)只對對應(yīng)的對象進(jìn)行初始化,構(gòu)造代碼塊給類的所有對象進(jìn)行初始化。
  • 由于構(gòu)造代碼塊給類的所有對象進(jìn)行初始化,所以對于每個對象都要初始化成一樣值的變量,可以防止構(gòu)造代碼塊中初始化。
class Person{
  String gender;
  int age;
  { //構(gòu)造代碼塊
    System.out.println("構(gòu)造代碼塊運行階段");
    gender="男";
  }
  Person(){//構(gòu)造函數(shù)
    System.out.println("構(gòu)造函數(shù)Person()運行階段");
  }
  Person(int age){//構(gòu)造函數(shù)
    System.out.println("構(gòu)造函數(shù)Person(int age)運行階段");
    this.age=age;
  }
  
}

public class Demo {
  public static void main(String[] args) {
    Person p1=new Person();
    System.out.println(p1.gender);
    Person p2=new Person(18);
    System.out.println(p2.gender);
  }
}

上述代碼結(jié)果:

構(gòu)造代碼塊運行階段
構(gòu)造函數(shù)Person()運行階段
男
構(gòu)造代碼塊運行階段
構(gòu)造函數(shù)Person(int age)運行階段
男

構(gòu)造代碼塊的好處的例子:

構(gòu)造函數(shù)版本:

image

構(gòu)造代碼塊版本:

image


靜態(tài)代碼塊:

  • 靜態(tài)代碼塊與構(gòu)造代碼塊不同的是,它只執(zhí)行一次,用于對整個類進(jìn)行初始化,通常是對類變量進(jìn)行初始化處理。
  • 靜態(tài)代碼塊中只能修改類變量。
  • 靜態(tài)代碼塊的執(zhí)行比主函數(shù)要早。
  • 有時候因為靜態(tài)代碼塊只執(zhí)行一次。所以有時候會用來“顯示程序流程”。
class Person{
  static String gender;
  int age;
  static {
    System.out.println("靜態(tài)代碼塊執(zhí)行完成");
    gender="男";//更改的變量只能是類變量
  }
  Person(){//構(gòu)造函數(shù)
    System.out.println("構(gòu)造函數(shù)Person()運行階段");
  }
  Person(int age){//構(gòu)造函數(shù)
    System.out.println("構(gòu)造函數(shù)Person(int age)運行階段");
    this.age=age;
  }
}

public class Demo {

  public static void main(String[] args) {
    Person p1=new Person();
    System.out.println(p1.gender);
    Person p2=new Person(18);
    System.out.println(p2.gender);

  }

}

上述代碼執(zhí)行結(jié)果:

靜態(tài)代碼塊執(zhí)行完成
構(gòu)造函數(shù)Person()運行階段
男
構(gòu)造函數(shù)Person(int age)運行階段
男

補(bǔ)充:

  • 各個初始化塊的運行順序:靜態(tài)代碼塊-》構(gòu)造代碼塊-》構(gòu)造方法

更多java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java面向?qū)ο蟪绦蛟O(shè)計入門與進(jìn)階教程》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設(shè)計有所幫助。

相關(guān)文章

  • Java中的Lambda表達(dá)式詳解

    Java中的Lambda表達(dá)式詳解

    這篇文章主要介紹了Java中的Lambda表達(dá)式詳解,Lambda 表達(dá)式是 JDK8 的一個新特性,可以取代大部分的匿名內(nèi)部類,寫出更優(yōu)雅的 Java 代碼,尤其在集合的遍歷和其他集合操作中,可以極大地優(yōu)化代碼結(jié)構(gòu),需要的朋友可以參考下
    2024-01-01
  • Java工程使用ffmpeg進(jìn)行音視頻格式轉(zhuǎn)換的實現(xiàn)

    Java工程使用ffmpeg進(jìn)行音視頻格式轉(zhuǎn)換的實現(xiàn)

    FFmpeg是一套可以用來記錄、轉(zhuǎn)換數(shù)字音頻、視頻,并能將其轉(zhuǎn)化為流的開源計算機(jī)程序,本文主要介紹了Java工程使用ffmpeg進(jìn)行音視頻格式轉(zhuǎn)換的實現(xiàn)
    2024-02-02
  • MyBatis一級與二級緩存相關(guān)配置

    MyBatis一級與二級緩存相關(guān)配置

    mybatis-plus是一個Mybatis的增強(qiáng)工具,在Mybatis的基礎(chǔ)上只做增強(qiáng)不做改變,為簡化開發(fā)、提高效率而生,這篇文章帶你了解Mybatis的一級和二級緩存
    2023-01-01
  • 一篇文章看懂Java異常處理

    一篇文章看懂Java異常處理

    異常是程序中的一些錯誤,但并不是所有的錯誤都是異常,并且錯誤有時候是可以避免的,這篇文章主要給大家介紹了關(guān)于Java異常處理的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • URL @PathVariable 變量的匹配原理分析

    URL @PathVariable 變量的匹配原理分析

    這篇文章主要介紹了URL @PathVariable 變量的匹配原理分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Java面試重點中的重點之Elasticsearch核心原理

    Java面試重點中的重點之Elasticsearch核心原理

    ElasticSearch是一個基于Lucene的搜索引擎,是用Java語言開發(fā)的,能夠達(dá)到實時搜索,穩(wěn)定,可靠,快速,安裝使用方便,作為Apache許可條款下的開放源碼發(fā)布,是一種流行的企業(yè)級搜索引擎,是最受歡迎的企業(yè)搜索引擎
    2022-01-01
  • Java如何使用Agent和ASM在字節(jié)碼層面實現(xiàn)方法攔截

    Java如何使用Agent和ASM在字節(jié)碼層面實現(xiàn)方法攔截

    Agent是一種運行在 Java 虛擬機(jī) (JVM) 上的特殊程序,ASM是一個輕量級的 Java 字節(jié)碼編輯和分析框架,本文為大家介紹了如何利用他們在字節(jié)碼層面實現(xiàn)方法攔截,感興趣的可以了解一下
    2023-05-05
  • Java實現(xiàn)字符串轉(zhuǎn)換成可執(zhí)行代碼的方法

    Java實現(xiàn)字符串轉(zhuǎn)換成可執(zhí)行代碼的方法

    今天小編就為大家分享一篇Java實現(xiàn)字符串轉(zhuǎn)換成可執(zhí)行代碼的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 如何使用Java完成Socket通信

    如何使用Java完成Socket通信

    這篇文章主要介紹了如何使用Java完成Socket通信問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 詳解Java中的sleep()和wait()的區(qū)別

    詳解Java中的sleep()和wait()的區(qū)別

    這篇文章主要介紹了詳解Java中的sleep()和wait()的區(qū)別的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09

最新評論

剑川县| 梁山县| 民和| 睢宁县| 岳阳市| 钟祥市| 凤山县| 新兴县| 南澳县| 炉霍县| 磴口县| 衡山县| 馆陶县| 嘉峪关市| 东丰县| 黎川县| 滕州市| 陆良县| 轮台县| 五台县| 睢宁县| 富宁县| 唐海县| 青河县| 越西县| 大港区| 防城港市| 淮滨县| 石棉县| 札达县| 北宁市| 洪湖市| 淮北市| 琼海市| 金沙县| 博白县| 桦甸市| 尚志市| 桃园市| 饶河县| 广元市|