成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Java漫談---Java中的初始化

Alfred / 3048人閱讀

摘要:一成員變量的初始化成員變量的默認(rèn)值會在調(diào)用構(gòu)造方法之前對所有沒有在聲明時賦值的成員變量賦予默認(rèn)值。四初始化順序在類加載時唯一初始化一次次靜態(tài)變量和執(zhí)行靜態(tài)字句。

java中所有變量在使用之前必須得到初始值,否則無法編譯通過。java中的變量分為類中的成員變量和方法中的局部變量,方法中的局部變量在使用之前我們必須自己進(jìn)行初始化。

一、成員變量的初始化:
1、成員變量的默認(rèn)值:

Java會在調(diào)用構(gòu)造方法之前對所有沒有在聲明時賦值的成員變量賦予默認(rèn)值。

數(shù)值類型:0

字符char:"u0000"

布爾型:false

對象和數(shù)組:null

1、指定初始化值:

在聲明成員變量的時候就指定初始化值。
在顯示指定初始化值時若用的其他成員變量,必須保證用到的變量已經(jīng)被初始化了。(成員變量的初始子上而下進(jìn)行)

3、靜態(tài)成員初始化:

靜態(tài)成員變量的初始賦值與普通成員一樣,唯一不同在于靜態(tài)變量初始化只在在類加載時執(zhí)行一次,而普通成員變量在每次實(shí)例化時都執(zhí)行一次。

4、靜態(tài)字句:
class Test {
    static int a = 1;
    static {
        System.out.println(a);
    }
    static int b = 2;
}

靜態(tài)字句使用static后加大括號中,在類加載時靜態(tài)字句會被執(zhí)行,且之只會在類加載時執(zhí)行一次。
注意:初始時,先對a進(jìn)行初始,然后執(zhí)行靜態(tài)字句,然后對a進(jìn)行初始化。如果上面輸出得是b那將編譯報錯,因?yàn)槲覀儾荒茉俪跏蓟苯邮褂靡粋€變量。

5、非靜態(tài)字句:
class Test {
    int a = 1;
    {
        System.out.println(a)
    }
}

非靜態(tài)字句在每次實(shí)例化時被執(zhí)行。

二、構(gòu)造方法進(jìn)行初始化:

每次創(chuàng)建類對象時都會調(diào)用類的構(gòu)造方法,可以在構(gòu)造方法中進(jìn)行一些初始化操作,不過構(gòu)造方法的調(diào)用發(fā)生在成員初始化之后。

1、this關(guān)鍵字調(diào)用其他構(gòu)造方法

可以在構(gòu)造方法將this作為方法調(diào)用從而調(diào)用其它構(gòu)造方法,但this調(diào)用只能調(diào)用一次且必須在第一行。

public class Tree {
    private int h;
    
    public Tree() {
        this(6);
    }
    public Tree(int h) {
        this.h = h;    
    }
}

除構(gòu)造方法中外,其他任何地方都禁止調(diào)用構(gòu)造方法。

三、父類初始化:

類有父類時先對父類進(jìn)行初始化,如果類類也有父類則對先初始化父類,以此進(jìn)行下去。
并且在基類構(gòu)造器第一個語句使用super調(diào)用父類的構(gòu)造方法,若基類含有不帶參數(shù)的構(gòu)造方法那么可以不顯示的調(diào)用super,編譯器會自動調(diào)用。
super只能在構(gòu)造方法第一行調(diào)用一次。

public class A {
    public A(int a) {
        
    }
}

public class B {
    public B(int b) {
        spuer(b);
    }
}
四、初始化順序:

在類加載時唯一初始化一次次靜態(tài)變量和執(zhí)行靜態(tài)字句。靜態(tài)變量和靜態(tài)執(zhí)行子上而下順序進(jìn)行。

在每次實(shí)力化類對象時進(jìn)行普通成員變量的初始化和執(zhí)行費(fèi)靜態(tài)字句,初始化和字句按順序自上而下執(zhí)行。

有父類先進(jìn)行父類的初始化

五、數(shù)組初始化
1、只聲明時的默認(rèn)值:
class Test {
    int[] as;
    
    public Test() {
        int[] bs;
    }
} 

Java中數(shù)組類型的變量也是對象,所以在成員變量的數(shù)組在聲明后如果未初始化則有默認(rèn)值null,但bs由于是方法里聲明所以不會被自動初始化為null,在使用之前就需要手動顯示的進(jìn)行初始化。

2、new時的默認(rèn)值:
class Test {
    public static void main(String[] args) {
        int[] aArr = new int[10];
        Integer[] bArrs = new Integer[10];
    }
}

對于aArr賦予new對象引用,此時aArr指向的是10個值為0的int數(shù)組。對于基本類型new的時候會為數(shù)組的每一個成員賦予默認(rèn)值,如果是對象類型則賦予null:

數(shù)值類型:0

字符char:"u0000"

布爾型:false

對象:null

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/71500.html

相關(guān)文章

  • 漫談代理模式

    摘要:而在模式中角色與角色的接口是相同的透明性。而在模式中與增加新功能相比它更注重通過設(shè)置代理人的方式來減輕本人的工作負(fù)擔(dān) 本文首發(fā)于泊浮目的專欄:https://segmentfault.com/blog... 前言 代理模式是在編程中非常常見的設(shè)計模式.筆者在面試的過程中也經(jīng)常會問到相關(guān)的問題,但是很多同學(xué)答的并不盡人意.在這篇文章中,筆者想和大家聊聊代理模式的應(yīng)用及一些實(shí)踐. Wha...

    neuSnail 評論0 收藏0
  • 漫談Exception與Result

    摘要:分析性能的影響但是需要注意時間單位,只是微秒而已,毫秒的千分之一秒的百萬分之一。在這種情況下,優(yōu)化毫秒的性能隱患無異于撿了芝麻丟了西瓜。 同步自:https://sulin.me/2019/T2ZXZB.... 在分布式系統(tǒng)開發(fā)中,我們經(jīng)常需要將各種各樣的狀態(tài)碼、錯誤信息傳遞給最外層的調(diào)用方,這個調(diào)用方通常是http/api接口,錯誤信息比如登錄失效、參數(shù)錯誤等等。 最外層接口暴露的...

    張利勇 評論0 收藏0
  • 金幣(積分)商城架構(gòu)漫談

    摘要:開篇金幣積分商城下稱商城是眾多內(nèi)的一個產(chǎn)品,隨著使用的用戶越來越多,商城對于用戶留存的提升,扮演著重要的角色做為提高用戶黏性的核心產(chǎn)品,在擁有很好用戶體驗(yàn)的同時,也必須存在著一個高效穩(wěn)定的系統(tǒng)。分析上述兩點(diǎn),得到結(jié)論按用戶進(jìn)行分庫分表。 開篇 金幣(積分)商城(下稱商城)是眾多App內(nèi)的一個產(chǎn)品,隨著App使用的用戶越來越多,商城對于用戶留存的提升,扮演著重要的角色;做為提高用戶黏性的...

    Ethan815 評論0 收藏0
  • 漫談開發(fā)設(shè)計中的一些“原則”及“設(shè)計哲學(xué)”

    摘要:在開發(fā)設(shè)計中有一些常用原則或者潛規(guī)則,根據(jù)筆者的經(jīng)驗(yàn),這里稍微總結(jié)一下最最常用的,以饗讀者。是處理復(fù)雜性的一個原則。參考六大設(shè)計原則里氏替換原則奧卡姆剃刀如有問題可以通過郵件微信聯(lián)系我。 在開發(fā)設(shè)計中有一些常用原則或者潛規(guī)則,根據(jù)筆者的經(jīng)驗(yàn),這里稍微總結(jié)一下最最常用的,以饗讀者。 DRY 這里的DRY是Do Not Repeat Yourself的縮寫。具體解釋參見 ,嚴(yán)謹(jǐn)?shù)亩x是 E...

    william 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<