java的成員變量默認值


如果我們不做任何初始化工作,變量具有什么默認值,或者是否具有默認值呢?
其實,成員變量在創建時,系統會為其分配一個默認值。不同類型的變量,默認值也不相同,下面來看看各種類型的默認值分別是什么。

用例子來說明:先輸入一個java代碼(這里只包括了實例變量)

class Text1 {
    // 實例成員變量
    private boolean bool;
    private byte b;
    private short s;
    private char c;
    private int i;
    private long l;
    private float f;
    private double d;
    private String str;
    private String[] strArray;

	public void printInstance() {
        System.out.println("實例成員變量默認值:");
        System.out.println("boolean:" + bool);
        System.out.println("byte:" + b);
        System.out.println("short:" + s);
        System.out.println("int:" + i);
        System.out.println("long:" + l);
        System.out.println("float:" + f);
        System.out.println("double:" + d);
        System.out.println("String:" + str);
        System.out.println("String[]:" + strArray);
		System.out.println("char:" + c);
    }
}
public class Text{
	public static void main(String[] args) {
        Text1 dv = new Text1();
        dv.printInstance();
    }
}

  

  輸出結果:

 

 下面我們來看看類變量是否和實例變量一樣

class Text1 {
    // 靜態成員變量
    private static boolean boolStatic;
    private static byte bStatic;
    private static short sStatic;
    private static char cStatic;
    private static int iStatic;
    private static long lStatic;
    private static float fStatic;
    private static double dStatic;
    private static String strStatic;
    private static String[] strArrayStatic;

	    public static void printStatic() {
        System.out.println("靜態成員變量默認值:");
        System.out.println("boolean:" + boolStatic);
        System.out.println("byte:" + bStatic);
        System.out.println("short:" + sStatic);
        System.out.println("int:" + iStatic);
        System.out.println("long:" + lStatic);
        System.out.println("float:" + fStatic);
        System.out.println("double:" + dStatic);
        System.out.println("String:" + strStatic);
        System.out.println("String[]:" + strArrayStatic);
		System.out.println("char:" + cStatic);
	}
}
public class Text{
	public static void main(String[] args) {
        Text1 dv = new Text1();
        dv.printStatic();
    }
}

  輸出結果:

  

 

 在本程序中聲明了各種類型,分別為8種基本數據類型、引用類型、數組類型。並且聲明為兩組,一組為實例變量,一組為靜態變量。然后一次輸出兩組數據的值。
數組類型與引用類型的默認值相同,都為null,實際上,數組就是一種特殊的類(對象),所以數組類型的變量也就是引用類型的變量。從結果可知,相同類型的實例變量與靜態變量默認值是相同的。
這里有一點奇怪,char類型變量后面什么也沒有輸出。不過,這並不是char類型變量沒有默認值,而是默認值為“空字符”,也就是‘\u0000’,數值為0,我們可以證明一下。

  

class Text1 {
    char c;
}
public class Text{
    public static void main(String[] args) {
		Text1 A = new Text1();
        System.out.println((int) A.c);
        System.out.println(A.c == '\u0000');
    }
}

  輸出結果:

 

現在就到這里了,如果有新的知識,會馬上更新!

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM