基本資料型別
-
整型:
byte、short、int、long
java
的整型常量預設為int
型,在java
程式中變數通常宣告為int
型,除非不足以表示較大的數才用long
,而在宣告long
型常量必須在後面加上l
或L
。型別 佔用儲存空間 表數範圍 byte
1位元組=8 bit
-128 ~ 127 short
2位元組 -215 ~ 215 - 1 int
4位元組 -231 ~ 231 -1 (約21億) long
8位元組 -263 ~ 263 - 1 -
浮點型:
float、double
浮點型表示小數點的數值,
java
浮點型常量預設型別為double
。float
表示數值的範圍比long
還大,在定義float
變數時,變數要以f
或F
結尾(尾數可以精確到7位數字。很多情況下,精度很難滿足需求)double
精度是float
的兩倍。(通常採用此型別定義)
型別 佔用儲存空間 表數範圍 單精度 float
4位元組 -3.403E38 ~ 3.403E38 雙精度 double
8位元組 -1.798E308 ~ 1.798E308 -
字元型:
char
在宣告
char
型變數時,通常使用一對' '
,內部只能寫一個字元。實列:
char = '世'
√char = '世界'
×
型別 佔用儲存空間 表數範圍 char
1字元 = 2位元組 ' 字
' -
布林型:
boolean
布林型只有兩個值:
true
、false
,一般用在判斷、迴圈結構中使用。
引用資料型別
-
特殊:字串(
String
屬於引用資料型別)String
可以和所用資料型別進行計算,結果都為String
型別。 -
類(
class
) -
介面(
interface
) -
陣列(
array
)
基本資料型別之間的運算規則
自動型別提升
(byte
、char
、 short
) → int
→ long
→ float
→ double
特別:當
byte
、char
、short
三種型別的變數做運算時,結果為int
型別。
- 當容量小的資料型別的變數與容量大的資料型別的變數做運算時,結果自動提升為容量大的型別
說明: 此時的容量大小指的是表示數的範圍的大和小。
比如:
float
容量要大於long
的容量。
強制型別轉換
強制型別轉換就相當與自動型別提升運算的逆運算
-
強制資料轉換需要使用強轉符:()
-
注意:強制型別轉換,可能導致精度損失
public class VariableTest2 { public static void main(String[] args){ /*精度損失舉例1*/ double d1 = 12.3; int i1 = (int)d1; System.out.println(i1); // 12 /*沒有損失精度*/ long d2 = 123L; short i2 = (short)d2; System.out.println(i2); // 123 /*精度損失舉例2*/ int d3 = 128; byte i3 = (byte)d3; System.out.println(i3); // -128 } }