1. 程式人生 > >Java中未給定初始值的基礎資料型別為什麼不能輸出 ——Thinking in Java學習筆記(二)

Java中未給定初始值的基礎資料型別為什麼不能輸出 ——Thinking in Java學習筆記(二)

在java程式設計思想第二章節中有這麼一個練習題:定義一個類,給定兩個無初始值的int和char型別的數值,輸出兩個數的值,驗證int和char的初始值。
我第一次是這麼做的:

public static void main(String[] args) {
	int i;
	char a;
	System.out.println("int的預設值:" + i);
	System.out.println("char的預設值:" + a);
}

結果報錯了:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
	The local variable i may not have been initialized
	The local variable a may not have been initialized

	at com.yc.ThinkingInJava.chapter2.Test1.main(Test1.java:21)

提示在main方法中有引數無初始值,那麼問題來了,java中的基礎資料型別不是有預設值嗎,為什麼一定要定義初始值呢?

原來,java的基礎資料型別的預設值是針對於類欄位變數而言,其他的方法中的變數都需要自己設定初始值,不然編譯就會報錯。

Java中的八大基礎資料型別為:
boolean、char、byte、short、int、long、float、double
與之一一對應的包裝類分別為:
Boolean、Character、Byte、Short、Integer、Long、Float、Double
java基礎資料型別
而各個欄位的預設值分別為:

boolean(布林型) :false

char(字元型) :空

byte(位元組) :0

shot(短整型) :0

int(整型) :0

long(長整型) :0

float(浮點型) :0.0f

double(雙精度) :0.0d