Java語言擁有類似C語言的強大數據處理能力,內部數據類型分為四大類:整數、浮點數、字符、布爾型。整數與浮點數再按長度和精度細分,具體如下表:
| 數據類型 | 關鍵字 | 佔用位數 | 取值範圍 | 默認值 |
|---|---|---|---|---|
| 布爾型 | boolean | 8 | true, false | false |
| 字符型 | char | 16 | 0 ~ 65535 | '\u0000' |
| 字節型 | byte | 8 | -128 ~ 127 | 0 |
| 短整型 | short | 16 | -32768 ~ 32767 | 0 |
| 整型 | int | 32 | -2147483648 ~ 2147483647 | 0 |
| 長整型 | long | 64 | -9.22E18 ~ 9.22E18 | 0 |
| 浮點型 | float | 32 | 1.4013E-45 ~ 3.4028E+38 | 0.0f |
| 雙精度型 | double | 64 | 2.22551E-208 ~ 1.7977E+308 | 0.0d |
僅有true和false兩值,分別代表邏輯「真」與「假」。
注意兩點:
long替代int以節約資源。char c = 'A';與char c = 65;等效,因計算機以整數形式存儲字符。float(32位)與double(64位)用於表示小數。計算機採用浮點運算,結果與實際值總有微小誤差,位數越多越精確。科學記數法表示:3.14E3 = 3140,3.14E-2 = 0.0314。常數後綴f/F標識float,d/D標識double。賦值示例:
float f1 = 3.14f;
double f2 = 3.14d;
分為默認類型轉換(低位向高位,如int → long,自動完成)和強制類型轉換(高位向低位,需顯式轉型,可能丟失精度或溢出)。
// 默認轉換
int i = 5;
long j = i;
// 強制轉換
float f = 3.14f;
int i2 = (int) f; // 結果為3
long l = 5;
int i3 = (int) l; // 正常
// char c = (char) 30000; // 錯誤:超出char範圍
import java.awt.*;
import java.applet.Applet;
public class Leixing extends Applet {
boolean b1 = true;
int x = 10;
char c = 65; // 'A'
float f = 3.14f;
public void paint(Graphics g) {
g.drawString("布爾型:" + b1, 2, 20);
g.drawString("整型:" + x, 2, 40);
g.drawString("字符型:" + c, 2, 60);
g.drawString("浮點數據類型:" + f, 2, 80);
}
}
該Applet在畫布上繪製四行字符串,直觀展示各類型變量的默認字符串表示形式。