Java 繼承了 C/C++ 強大的數據處理能力,擁有完善的類型系統與運算定義。所有類型分為四大家族:整數、浮點數、字符、布爾值。整數與浮點數再按長度/精度細分為 8 種基本類型。本文通過表格、規則、代碼實例,帶你徹底掌握它們的特性、轉換陷阱與 Applet 顯示技巧。
| 類別 | 關鍵字 | 位數 | 取值範圍 | 默認值 |
|---|---|---|---|---|
| 整數 | byte | 8 | -128 ~ 127 | 0 |
| short | 16 | -32,768 ~ 32,767 | 0 | |
| int | 32 | -2,147,483,648 ~ 2,147,483,647 | 0 | |
| long | 64 | ~±9.22×10¹⁸ | 0L | |
| 浮點數 | float | 32 | ±1.4E-45 ~ ±3.4E+38 | 0.0f |
| double | 64 | ±4.9E-324 ~ ±1.8E+308 | 0.0d | |
| 字符 | char | 16 | 0 ~ 65,535 (Unicode) | '\u0000' |
| 布爾 | boolean | 1 (JVM 實現通常 8 位) | true / false | false |
boolean只有 true、false,對應邏輯「真/假」。不能用 0/1 替代,這是與 C/C++ 最大區別,增強了類型安全。
byte/short/int/long vs charint 足夠別用 long,節省內存。char c = 'A'; 等價於 char c = 65;。Java 用 Unicode(16 位)統一編碼,支持全球語言。float vs double3.14f (float)、3.14d 或 3.14 (double)。3.14E3 = 3140,3.14E-2 = 0.0314。| 方向 | 名稱 | 規則 | 示例 |
|---|---|---|---|
| 低位 → 高位 | 自動類型提升 (Widening) | 編譯器自動完成,無數據損失 | int i=5; long l=i; |
| 高位 → 低位 | 強制類型轉換 (Narrowing) | 程序員負責,可能截斷/溢出 | float f=3.14f; int i=(int)f; // i=3 |
陷阱警示:char c = (char)30000; 編譯通過但數據錯誤(超出 0-65535)。轉換前必須校驗範圍。
下面代碼在瀏覽器/ AppletViewer 中繪製四種類型的值,直觀驗證存儲與顯示:
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); // 顯示 'A'
g.drawString("浮點數據類型:" + f, 2, 80);
}
}
編譯運行:javac Leixing.java → 編寫 HTML 嵌入 `` → 瀏覽器打開或 appletviewer Leixing.html。
BigDecimal 或以「分」為單位存 long。StringBuilder,避免隱式創建大量中間對象。Integer 等),注意自動拆裝箱的 NPE 風險。-128~127 的 Integer、Boolean、Character 緩存複用,超出範圍 new 新對象。掌握 8 大基本類型的範圍、精度、轉換規則,是寫出健壯、高效 Java 代碼的前提。Applet 雖已退出歷史舞台,但其圖形繪製 API(Graphics.drawString)仍是理解 Java 2D 渲染管線的優秀切入點。下一步建議深入學習:包裝類、BigDecimal、數組、集合框架——構建完整的數據處理知識鏈。