Java基本資料型別詳解
阿新 • • 發佈:2019-02-15
Java中的基本資料型別
1. 整數型
型別 | 大小 | 範圍 | 示例 |
byte | 佔一個位元組 | -128~127 | byte b = 10; |
short | 佔兩個位元組 | -2^15~2^15-1 | short s = 20; |
int | 佔四個位元組 | -2^31~2^31-1 | int i = 30; |
long | 佔八個位元組 | -2^63~2^63-1 | long x = 8888888888L |
2. 浮點型
型別 | 大小 | 範圍 | 示例 |
float | 佔四個位元組 | -3.403E38~3.403E38 | float f = 12.3F |
double | 佔八個位元組 | -1.798E308~1.798E308 | double d = 33.4 |
3. 字元型:可以儲存漢字,因為漢字也佔兩個位元組。
大小 | 範圍 | 示例 | |
char | 佔兩個位元組 | 0~65535 | char c = 'a'; |
4. 布林型: boolean理論上是佔八分之一位元組,但java中並未明確指定它的大小。
二、 Java中基本資料型別的轉換規則
1. 預設轉換規則:取值範圍小的資料型別與取值範圍大的資料型別進行運算,會先將小的資料型別提升為大的,再運算。
2. 強制轉換:範圍小的型別向範圍大的型別轉換可以是隱式轉換,反之則要進行強制轉換
(1)byte和byte(或short, char) 進行運算時,會提升為int, 兩個int值相加也為int,強制轉換例子如下。
byte b1 = 3;
byte b2 = 4;
byte b = (byte) (b1 + b2); // 解釋要強制轉換的原因
System.out.println(b);
short s1 = 3;
short s2 = 4;
short s = (short) (s1 + s2);
System.out.println(s);
(2)Float的範圍比long類要大
float f = 12.3f;
long x = 12345;
f = x; // 此處是隱式轉換
System.out.println(f);
x = (long) f; // 此處必須強制轉換
System.out.println(x);
(3)char型別參與運算:
ASCII碼錶中,'0'對應int值48,‘A'對應int值65,'a'對應int值97
當字元型別資料參與數值運算時,自動轉換成int型別參與運算。
char c = 'a';
System.out.println(c);
System.out.println('c' + 1);
c
98