java中的變量於常量及數據類型
Java中的變量與常量
變量定義的注意事項
1.作用域問題:變量定義在哪一級大括號中,哪個大括號的範圍就是這個變量的作用域。相同的作用域中不能定義兩個同名變量。
2.初始化值問題:沒有初始化值不能直接使用。
3.在一行上建議只定義一個變量:可以定義多個,但是不建議。
4.定義long類型(一種數據類型,下面會提到)時要在數值後面加上L,否則數字超過int容量會報錯;定義float類型時要在數值後面加F,否則會發生報錯。這是因爲如果未加會導致變量未被定義爲我們想要的float或long類型,而是小數默認的double類型或整數默認的int類型。
舉個例子
class Demo_3 {
public static void main(String[] args) {
float a=3.14F;
long b=5611114865L;
System.out.println(a);
System.out.println(b);
}
}
這裏先試一下不加F
不加L效果如下:
java中的數據類型
自動類型提升
自動類型提升是指
1.byte,short,char在運算過程中會轉化爲int類型;若含有long或double則會轉化爲long或double
2.範圍較小的數據類型和範圍較大的數據類型同時操作時會轉化爲較大的數據類型(byte在與short,char運算時會轉化爲int)
這裏舉個例子:byte在運算過程中自動提升至int類型
class Demo_3 {
public static void main(String[] args) {
byte a=2;
byte b=3;
byte c=a+b;
System.out.println(b);
}
}
強制類型轉化
有的時候你可能不希望你定義的byte,short或其他類型在運算過程中被轉化爲int,long,或double類型,那麼你可以使用強制類型轉化來使其轉化爲你想要的類型
就拿上免得那個例子來再試一次
但是這樣也有不好的地方,當運算的結果的大小超出你強制轉化的類型容量的話運算結果可能就會出錯,例如:
byte容量爲一個字節即 -128~127 所以127+2超過的他的容量,這時強行存儲進byte類型中,導致了錯誤的結果—127