真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java代碼塊與代碼加載順序是什么

本篇內(nèi)容介紹了“Java代碼塊與代碼加載順序是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)建站是由多位在大型網(wǎng)絡(luò)公司、廣告設(shè)計公司的優(yōu)秀設(shè)計人員和策劃人員組成的一個具有豐富經(jīng)驗的團(tuán)隊,其中包括網(wǎng)站策劃、網(wǎng)頁美工、網(wǎng)站程序員、網(wǎng)頁設(shè)計師、平面廣告設(shè)計師、網(wǎng)絡(luò)營銷人員及形象策劃。承接:網(wǎng)站設(shè)計制作、做網(wǎng)站、網(wǎng)站改版、網(wǎng)頁設(shè)計制作、網(wǎng)站建設(shè)與維護(hù)、網(wǎng)絡(luò)推廣、數(shù)據(jù)庫開發(fā),以高性價比制作企業(yè)網(wǎng)站、行業(yè)門戶平臺等全方位的服務(wù)。

局部代碼塊

位置:局部位置(方法內(nèi)部)

作用:限定變量的生命周期,盡早釋放,節(jié)約內(nèi)存

調(diào)用:調(diào)用其所在的方法時執(zhí)行

 public class 局部代碼塊 {
@Test
public void test (){
    B b = new B();
    b.go();
}
}
class B {
    B(){}
    public void go() {
        //方法中的局部代碼塊,一般進(jìn)行一次性地調(diào)用,調(diào)用完立刻釋放空間,避免在接下來的調(diào)用過程中占用棧空間
        //因為??臻g內(nèi)存是有限的,方法調(diào)用可能會會生成很多局部變量導(dǎo)致棧內(nèi)存不足。
        //使用局部代碼塊可以避免這樣的情況發(fā)生。
        {
            int i = 1;
            ArrayList list = new ArrayList<>();
            while (i < 1000) {
                list.add(i ++);
            }
            for (Integer j : list) {
                System.out.println(j);
            }
            System.out.println("gogogo");
        }
        System.out.println("hello");
    }
}

構(gòu)造代碼塊

位置:類成員的位置,就是類中方法之外的位置

作用:把多個構(gòu)造方法共同的部分提取出來,共用構(gòu)造代碼塊

調(diào)用:每次調(diào)用構(gòu)造方法時,都會優(yōu)先于構(gòu)造方法執(zhí)行,也就是每次new一個對象時自動調(diào)用,對 對象的初始化

class A{
    int i = 1;
    int initValue;//成員變量的初始化交給代碼塊來完成
    {
        //代碼塊的作用體現(xiàn)于此:在調(diào)用構(gòu)造方法之前,用某段代碼對成員變量進(jìn)行初始化。
        //而不是在構(gòu)造方法調(diào)用時再進(jìn)行。一般用于將構(gòu)造方法的相同部分提取出來。
        //
        for (int i = 0;i < 100;i ++) {
            initValue += i;
        }
    }
    {
        System.out.println(initValue);
        System.out.println(i);//此時會打印1
        int i = 2;//代碼塊里的變量和成員變量不沖突,但會優(yōu)先使用代碼塊的變量
        System.out.println(i);//此時打印2
        //System.out.println(j);//提示非法向后引用,因為此時j的的初始化還沒開始。
        //
    }
    {
        System.out.println("代碼塊運行");
    }
    int j = 2;
    {
        System.out.println(j);
        System.out.println(i);//代碼塊中的變量運行后自動釋放,不會影響代碼塊之外的代碼
    }
    A(){
        System.out.println("構(gòu)造方法運行");
    }
}
public class 構(gòu)造代碼塊 {
    @Test
    public void test() {
        A a = new A();
    }
}

靜態(tài)代碼塊

 位置:類成員位置,用static修飾的代碼塊
 作用:對類進(jìn)行一些初始化  只加載一次,當(dāng)new多個對象時,只有第一次會調(diào)用靜態(tài)代碼塊,因為,靜態(tài)代碼塊                  是屬于類的,所有對象共享一份
 調(diào)用: new 一個對象時自動調(diào)用
 public class 靜態(tài)代碼塊 {
@Test
public void test() {
    C c1 = new C();
    C c2 = new C();
    //結(jié)果,靜態(tài)代碼塊只會調(diào)用一次,類的所有對象共享該代碼塊
    //一般用于類的全局信息初始化
    //靜態(tài)代碼塊調(diào)用
    //代碼塊調(diào)用
    //構(gòu)造方法調(diào)用
    //代碼塊調(diào)用
    //構(gòu)造方法調(diào)用
}
}
class C{
    C(){
        System.out.println("構(gòu)造方法調(diào)用");
    }
    {
        System.out.println("代碼塊調(diào)用");
    }
    static {
        System.out.println("靜態(tài)代碼塊調(diào)用");
    }
}

執(zhí)行順序 靜態(tài)代碼塊 -----> 構(gòu)造代碼塊 -------> 構(gòu)造方法

“Java代碼塊與代碼加載順序是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!


名稱欄目:Java代碼塊與代碼加載順序是什么
當(dāng)前地址:http://weahome.cn/article/pcchij.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部