java基礎知識之變量與常量及java數據類型

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中的數據類型

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類型參與運算被轉化成了四個字節的int類型,而byte只有一個字節,強行將int存入byte中可能會導致出錯

強制類型轉化

有的時候你可能不希望你定義的byte,short或其他類型在運算過程中被轉化爲int,long,或double類型,那麼你可以使用強制類型轉化來使其轉化爲你想要的類型
就拿上免得那個例子來再試一次

強制類型轉化
但是這樣也有不好的地方,當運算的結果的大小超出你強制轉化的類型容量的話運算結果可能就會出錯,例如:
數值超過容量導致運算結果出錯
byte容量爲一個字節即 -128~127 所以127+2超過的他的容量,這時強行存儲進byte類型中,導致了錯誤的結果—127

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章