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

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

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

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

本文內(nèi)容:

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

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


局部代碼塊:

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


構(gòu)造代碼塊:

  • 構(gòu)造函數(shù)只對對應的對象進行初始化,構(gòu)造代碼塊給類的所有對象進行初始化。
  • 由于構(gòu)造代碼塊給類的所有對象進行初始化,所以對于每個對象都要初始化成一樣值的變量,可以防止構(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í)行一次,用于對整個類進行初始化,通常是對類變量進行初始化處理。
  • 靜態(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)運行階段
男

補充:

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

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

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

相關文章

  • Java中的Lambda表達式詳解

    Java中的Lambda表達式詳解

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

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

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

    MyBatis一級與二級緩存相關配置

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

    一篇文章看懂Java異常處理

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

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

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

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

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

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

    Agent是一種運行在 Java 虛擬機 (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ū)別的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09

最新評論

巴彦淖尔市| 旺苍县| 小金县| 高邑县| 中牟县| 米脂县| 浪卡子县| 上高县| 莱阳市| 全南县| 横山县| 类乌齐县| 铁岭市| 西安市| 塘沽区| 渝中区| 防城港市| 宜城市| 定南县| 乌兰浩特市| 鱼台县| 卓尼县| 资阳市| 伊宁市| 莱西市| 舟曲县| 彭阳县| 安宁市| 南汇区| 高青县| 平江县| 鄂温| 垦利县| 中牟县| 惠州市| 怀柔区| 定兴县| 朝阳市| 阿勒泰市| 丰城市| 黑龙江省|