欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入淺析Java中普通代碼塊、構(gòu)造代碼塊與靜態(tài)代碼塊

 更新時(shí)間:2016年08月02日 11:51:59   作者:王景林  
這篇文章主要介紹了Java中普通代碼塊、構(gòu)造代碼塊與靜態(tài)代碼塊的相關(guān)資料,靜態(tài)代碼塊>Main()>構(gòu)造代碼塊 。非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

//執(zhí)行順序:(優(yōu)先級(jí)從高到低。)

靜態(tài)代碼塊>mian方法>構(gòu)造代碼塊>構(gòu)造方法。

其中靜態(tài)代碼塊只執(zhí)行一次。構(gòu)造代碼塊在每次創(chuàng)建對(duì)象是都會(huì)執(zhí)行。

1.普通代碼塊

public static void main(String[] args) {
/*普通代碼塊:
*直接定義在在方法或語句中出現(xiàn)”{普通代碼的執(zhí)行語句}“的就稱為普通代碼塊。
*普通代碼塊執(zhí)行順序由他們?cè)诖a中出現(xiàn)的次序決定--“先出現(xiàn)先執(zhí)行”
* */
{
  System.out.println("這里是普通代碼塊A");
}
//new A();
{
  System.out.println("這里是普通代碼塊B");
}
}

執(zhí)行結(jié)果:這里是普通代碼塊A
     這里是普通代碼塊B

2.靜態(tài)代碼塊與構(gòu)造代碼塊

在java中使用static關(guān)鍵字聲明的代碼塊。

常用于對(duì)類的初始化,每個(gè)靜態(tài)代碼塊只會(huì)執(zhí)行一次(類在內(nèi)存中加載時(shí)執(zhí)行,類在內(nèi)存中加載后類已經(jīng)存在)由于JVM在加載類時(shí)會(huì)執(zhí)行靜態(tài)代碼塊,所以靜態(tài)代碼塊先于主方法執(zhí)行。如果類中包含多個(gè)靜態(tài)代碼塊,那么將按照"先定義的代碼先執(zhí)行,后定義的代碼后執(zhí)行。

ps:

1 靜態(tài)代碼塊不能存在于任何方法體內(nèi)。

2 靜態(tài)代碼塊不能直接訪問靜態(tài)實(shí)例變量和實(shí)例方法,需要通過類的實(shí)例對(duì)象來訪問。

構(gòu)造塊:直接在類中定義且沒有加static關(guān)鍵字的代碼塊稱為{}構(gòu)造代碼塊。

構(gòu)造代碼塊在創(chuàng)建對(duì)象時(shí)被調(diào)用,每次創(chuàng)建對(duì)象都會(huì)被調(diào)用,并且構(gòu)造代碼塊的執(zhí)行次序優(yōu)先于類構(gòu)造函數(shù)。

public class structure {
{
System.out.println("這里是普通代碼塊");//所有類中有一個(gè)默認(rèn)的構(gòu)造函數(shù),這里的代碼塊為構(gòu)造代碼塊,在類中的對(duì)象被創(chuàng)建時(shí)執(zhí)行
}
public static void main(String[] args) {
/*普通代碼塊:
*直接定義在在方法或語句中出現(xiàn)”{普通代碼的執(zhí)行語句}“的就稱為普通代碼塊。
*普通代碼塊執(zhí)行順序由他們?cè)诖a中出現(xiàn)的次序決定--“先出現(xiàn)先執(zhí)行”
* */
{
System.out.println("這里是普通代碼塊A");
}
new structure();//第二次類加載時(shí)靜態(tài)代碼塊不執(zhí)行
//new A();
{
System.out.println("這里是普通代碼塊B");
}
}
static{
System.out.println("這里是靜態(tài)代碼塊");
}
}

執(zhí)行結(jié)果:

這里是靜態(tài)代碼塊//優(yōu)先于主函數(shù)
這里是普通代碼塊A
這里是普通代碼塊//類中的對(duì)象被創(chuàng)建時(shí)執(zhí)行,每創(chuàng)建一次執(zhí)行一次,在加一句new structure(); 執(zhí)行結(jié)果為:

這里是普通代碼塊B

3.概要總結(jié)

public class structure {
{
System.out.println("這里是普通代碼塊");
}
public static void main(String[] args) {
{
System.out.println("這里是普通代碼塊A");
}
//new structure();
//new structure();
new A();
{
System.out.println("這里是普通代碼塊B");
}
}
static{
System.out.println("這里是靜態(tài)代碼塊");
}
}
class A{
static{
System.out.println("這里是A中的普靜態(tài)代碼塊1");
}
{
System.out.println("這里是A中的普通代碼塊1");
}
{
System.out.println("這里是A中的普通代碼塊2");
}
}

執(zhí)行結(jié)果:

這里是靜態(tài)代碼塊
這里是普通代碼塊A
這里是A中的普靜態(tài)代碼塊1
這里是A中的普通代碼塊1
這里是A中的普通代碼塊2
這里是普通代碼塊B

優(yōu)先級(jí)總結(jié):靜態(tài)代碼塊>Main()>構(gòu)造代碼塊

相關(guān)文章

  • JVM入門之JVM內(nèi)存結(jié)構(gòu)內(nèi)容詳解

    JVM入門之JVM內(nèi)存結(jié)構(gòu)內(nèi)容詳解

    這篇文章主要介紹了JVM入門之JVM內(nèi)存結(jié)構(gòu)內(nèi)容詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • Java 讀取、獲取配置文件.properties中的數(shù)據(jù)

    Java 讀取、獲取配置文件.properties中的數(shù)據(jù)

    這篇文章主要介紹了Java 讀取、獲取配置文件.properties中的數(shù)據(jù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-09-09
  • java讀取郵件excel附件的方法過程示例

    java讀取郵件excel附件的方法過程示例

    這篇文章主要介紹了java讀取郵件excel附件的方法過程示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • Kotlin語法學(xué)習(xí)-變量定義、函數(shù)擴(kuò)展、Parcelable序列化等簡單總結(jié)

    Kotlin語法學(xué)習(xí)-變量定義、函數(shù)擴(kuò)展、Parcelable序列化等簡單總結(jié)

    這篇文章主要介紹了Kotlin語法學(xué)習(xí)-變量定義、函數(shù)擴(kuò)展、Parcelable序列化等簡單總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Mybatis中${param}與#{param}的區(qū)別說明

    Mybatis中${param}與#{param}的區(qū)別說明

    這篇文章主要介紹了Mybatis中${param}與#{param}的區(qū)別說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • SpringBoot注冊(cè)第三方Bean的方法總結(jié)

    SpringBoot注冊(cè)第三方Bean的方法總結(jié)

    眾所周知,SpringBoot默認(rèn)會(huì)掃描啟動(dòng)類所在的包及其子包,一般我們都是在需要的類上通過注解的方式去將Bean注冊(cè)交給IOC進(jìn)行管理,但是注冊(cè)第三方Bean的方案卻不支持,所以本文給大家介紹了SpringBoot注冊(cè)第三方Bean的方法,需要的朋友可以參考下
    2024-01-01
  • 詳解Guava中EventBus的使用

    詳解Guava中EventBus的使用

    EventBus是Guava的事件處理機(jī)制,是設(shè)計(jì)模式中觀察者模式(生產(chǎn)/消費(fèi)者編程模型)的優(yōu)雅實(shí)現(xiàn)。本文就來和大家聊聊EventBus的使用,需要的可以參考一下
    2022-12-12
  • IntelliJ IDEA導(dǎo)入Gradle項(xiàng)目的方法

    IntelliJ IDEA導(dǎo)入Gradle項(xiàng)目的方法

    這篇文章主要介紹了IntelliJ IDEA導(dǎo)入Gradle項(xiàng)目的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • SpringBoot URL帶有特殊字符([]/{}等),報(bào)400錯(cuò)誤的解決

    SpringBoot URL帶有特殊字符([]/{}等),報(bào)400錯(cuò)誤的解決

    這篇文章主要介紹了SpringBoot URL帶有特殊字符([]/{}等),報(bào)400錯(cuò)誤的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 教你Spring Cloud保證各個(gè)微服務(wù)之間調(diào)用安全性

    教你Spring Cloud保證各個(gè)微服務(wù)之間調(diào)用安全性

    在微服務(wù)的架構(gòu)下,系統(tǒng)會(huì)根據(jù)業(yè)務(wù)拆分為多個(gè)服務(wù),各自負(fù)責(zé)單一的職責(zé),在這樣的架構(gòu)下,我們需要確保各api的安全性,今天通過本文給大家分享Spring Cloud中如何保證各個(gè)微服務(wù)之間調(diào)用的安全性,需要的朋友參考下吧
    2021-08-08

最新評(píng)論