1. 程式人生 > >java各資料型別的預設值【含各種變數】

java各資料型別的預設值【含各種變數】

時間一長,總是忘記,這裡記一下

在java中,區域性變數,沒有預設值,如果在宣告時,未賦值,在接下來的程式中直接使用該變數的值將由編譯器檢查出錯誤。(包裝類也一樣)

在這裡插入圖片描述

而與之相對的是成員變數(也叫類成員),如果是八種基本資料型別(byte, short, int, long, float, double, boolean, char,在沒有被手動賦值的卻在程式中被使用的情況下,將被賦予初值:

如果是 byte,short,int,long初值為0
而float,double則為0.0
至於   char則是 ' '(空格字元)
最後是boolean   為false

如果是包裝類(Integer,String,Byte,Short,Char,Long)則為null

public class _Test {
    static int a;
    static short b;
    static  String sr;
    static Integer i;
    static Character t;
    static Long l;
    public static void main(String[] args) {
        System.out.println(a);
        System.out.println(b);
        System.out.println(sr);
        System.out.println(i);
        System.out.println(t);
        System.out.println(l);
    }
}
//結果
0
0
null
null
null
null

總結

例項變數(成員變數):該變數屬於某個類的例項,例項變數在物件建立的時候建立,在物件被銷燬的時候銷燬;另外static塊和方法不能直接的呼叫它。

靜態變數:它屬於類,也就是說它不能被申明在區域性方法中,(可以手動驗證),有預設值,靜態變數在程式開始時建立,在程式結束時銷燬,可用型別.變數訪問。

區域性變數:屬於一個函式方法或程式碼塊,沒有預設值,第一次使用時,必須初始化。

被final修飾時

被final修飾的變數(要記得區分物件跟值),變數的指向不可變,但內容可變,對於值,當他的內容變時,指向就變了!!

final 修飾的是例項變數,那麼必須初始化,或者在構造塊中,或者在構造器中,否則編譯不能通過。

final修飾的是靜態變數,同樣也得必須初始化,不同的是,它要麼直接初始化,要麼在靜態塊中初始化,不能在構造器中初始化,但是!!!如果沒有final修飾,它又能在構造其中初始化。

final修飾的是區域性變數,這個就好辦了,第一次使用就要初始化,然後就沒然後了。