Java是一種面向對象的編程語言,其變量類型可分為基本數據類型和引用數據類型。在Java中,a 和a 的區別就非常明顯了。
//a是基本數據類型int,其值在此處為5 int a = 5; //a是引用數據類型Integer,其值在此處為null Integer a = null;
基本數據類型a是一個整數類型的變量,里面存儲著一個整數值。引用數據類型a是一個對象引用類型的變量,里面存儲著一個對象的引用。在Java中,引用數據類型的變量默認值為null,意即沒有指向任何對象。因此,不同于基本數據類型,嘗試在一個空引用上進行操作會產生NullPointerException。
舉個例子,如果寫下如下代碼,編譯器會在運行時拋出錯誤:
Integer a = null; int b = a;因為由空引用賦值到基本類型b,null值無法轉換為int類型的值,拋出NullPointerException異常。 如果寫下如下代碼:
int a = 5; Integer b = a;則編譯期間會拋出錯誤,因為嘗試將基本類型a賦值給引用數據類型b,需要強制轉換。當然,如果將其改為如下代碼,則可以正常運行:
int a = 5; Integer b = Integer.valueOf(a);這里使用了Integer類的valueOf()方法,將int類型的值轉化成了Integer對象。