JAVA當中變量什么時候需要初始化


1. 對於類的成員變量,不管程序有沒有顯式的進行初始化,Java虛擬機都會先自動給它初始化為默認值。 

 默認值如下:
             Boolean      false
             Char           '\u0000'(null)
             byte            (byte)0
             short           (short)0
             int               0
             long            0L
             float            0.0f
             double        0.0d
2. 局部變量聲明之后,Java虛擬機就不會自動給它初始化為默認值,因此局部變量的使用必須先經過顯式的初始化。
      但是需要聲明的是:對於只負責接收一個表達式的值的局部變量可以不初始化,參與運算和直接輸出等其它情況的局部變量需要初始化。

通過下面這個測試可以看到JVM對哪些數據初始化,哪寫數據不初始化:

public class TestStatic {
 static int x; //類的成員變量,JVM負責初始化
 static int method()
 {
    int y=0;  //此處必須自己初始化,它不屬於類成員變量,是個method的局部變量,JVM不負責初始化

    return y;
 }
 public static void main(String[] args) {
     TestStatic as=new TestStatic();
     int z=0;  //此處必須自己初始化,它不屬於類成員變量,是個主函數里的局部變量,JVM不負責初始化
     int aa=3; //此處aa參與了運算,所以必須初始化
     aa=aa+2;
     int a=1,b=2,max; //max只是負責接收表達式的值,不需要初始化
     max=a>b?2:1; 
     System.out.println(max); //1
     System.out.println(aa); //5
     System.out.println("z="+z); //z=0
     System.out.println("x="+as.x); //x=0  

    System.out.println("y="+as.method()); //y=0
 }

總結為一句話便是:
 類里定義的數據成員稱為屬性,屬性可不賦初值,若不賦初值則JAVA會按上表為其添加默認值;方法里定義的數據成員稱為變量,變量在參與運算之前必須賦初值。


免責聲明!

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



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