Java資料型別和型別轉換
Java的基礎資料型別:
- 整型
資料型別 | 佔用儲存空間 |
---|---|
byte | 1位元組 |
short | 2位元組 |
int | 4位元組 |
long | 8位元組 |
- 浮點型
資料型別 | 佔用儲存空間 |
---|---|
float | 4位元組 |
double | 8位元組 |
浮點型的數字不能適用於計算的過程中,浮點使用二進位制,無法表示1/10這樣的數字,所以用於數字計算的系統中最好使用BigDecimal這樣的類來進行計算
- 布林型
true(1) and false(0) 預設值是false - 字元型
char是一個16位的Unicode 佔用儲存空間是2個位元組
變數的賦值
int aNum = 1;在宣告一個變數之後在使用此變數之前一定是要對其賦值的,不然會產生錯誤。
常量的賦值
final int LENGTH = 1; 變數名全大寫 final修飾變量表示不可改變
型別轉換
當使用兩個數值進行二元操作時候,運算符合兩邊的資料型別先要轉換為一致,不然就很容易造成精度丟失。
- java中整數型別預設的int型別;小數型別預設的double;
char 可以當做一中特殊的整數型別;
int無法轉換為boolean;
小數型別轉為整數型別,小數可能被捨棄,所有出現精度損失,所以需要強制轉換;
boolean 型別不能轉換成任何其它資料型別
- 自動轉換
自動轉化需要滿足兩個條件:1.轉換前的資料型別與轉換後的資料型別相容 2.轉換後的資料型別比轉化前資料型別表示範圍大
~~
還需注意的是:
1、如果兩個運算元中有一個是double型別,另一個就會轉換為double型別;
2、否則,如果有一個運算元是float,另一個就會轉化為float;
3、否則,如果有一個運算元是long,另一個就會轉換為long;
4、否則,兩個運算元都將轉換為int型別。
~
- 強制轉換
強制轉化也需要滿足轉換前的資料型別與轉換後的資料型別相容這一條件
-整型互轉
向下轉型容易造成資料精度的丟失以及內容的溢位如:
int a = (int)long
byte a = (int)int
向上轉型可以視為自動轉型
-數字轉String:兩種方法可以使int型別轉換為String型別
String.valueOf(int)其他數字型別轉換為String型別都可以通過String.valueOf()這API進行轉換
int + “”
-字串轉數字型別
字串轉數字型別,需要字串本身就是數字如:”111”,”222”,不能帶有其他的非數字字串,不然會丟擲執行時異常,轉換的API是Integer.parseInt(String),轉換為其他數字型別如long 使用Long.prseLong(String)….