首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 基礎數據類型詳解:8 種基本類型、取值範圍、默認值與字面量表示

     編輯:Java 相關知識

Java 是強類型語言

每個變量、表達式、參數、返回值都有編譯期確定的類型。基本類型非對象,存儲值本身而非引用,性能最高、內存最緊湊。

八大基本類型總表

類型關鍵字位數字節取值範圍默認值字面量後綴
字節型byte81-128 ~ 1270無(需造型)
短整型short162-32,768 ~ 32,7670無
整型int324-2,147,483,648 ~ 2,147,483,6470無(默認)
長整型long648-9.22e18 ~ 9.22e180LL 或 l
單精度浮點float324±3.4e38(6~7 位有效數字)0.0fF 或 f
雙精度浮點double648±1.79e308(15 位有效數字)0.0dD 或 d(默認)
字符型char1620 ~ 65,535 (Unicode BMP)'\u0000'單引號 'a'
布爾型boolean~1 (JVM 實現相關)-true / falsefalse無

關鍵細節

整數字面量

  • 十進制:123
  • 八進制:0173(前導 0)
  • 十六進制:0x7B / 0X7B
  • 二進制(Java 7+):0b1111011 / 0B1111011
  • 下劃線分隔(Java 7+):1_000_000、0xFF_EC_DE_5E 提高可讀性。

浮點數字面量

  • 科學計數法:1.23e4 (=12300)、1.23E-4 (=0.000123)。
  • 無後綴默認 double,float 必須加 F/f:3.14F。
  • 特殊值:Float.POSITIVE_INFINITY、NEGATIVE_INFINITY、NaN;Double 同理。

字符與 Unicode

  • char 存儲 UTF-16 碼元(0~FFFF),基本多語言平面(BMP)字符一個 char,補充字符(Emoji、生僻字)需兩個 char(代理對 surrogate pair)。
  • 轉義序列:\b \t \n \r \" \' \\、八進制 \123、Unicode \u0041。
  • 顯示依賴字體與操作系統支持,非 Java 控制範圍。

布爾類型

無大小規範,JVM 通常用 int (32位) 或 byte 表示。不可與整數互換(C 中 0/非 0 即 false/true),嚴格類型安全。

包裝類與自動裝箱/拆箱

每種基本類型對應包裝類:Byte, Short, Integer, Long, Float, Double, Character, Boolean。
自動裝箱:基本 → 包裝(Integer i = 10; → Integer.valueOf(10))。
自動拆箱:包裝 → 基本(int n = i; → i.intValue())。
緩存範圍:Integer.valueOf() 緩存 -128~127,Integer a=100, b=100; a==b → true;Integer c=200, d=200; c==d → false(比較內容用 equals())。

大數字處理

  • BigInteger:任意精度整數,支持所有數學運算、位運算、質數測試。
  • BigDecimal:任意精度十進制浮點,**金融計算必須**,避免二進制浮點誤差(0.1+0.2!=0.3)。
    創建用 new BigDecimal("0.1") 字符串構造器,**禁用 double 構造器**(會帶入二進制誤差)。

選型建議

  • 通用整數計算:int(性能最優、CPU 原生)。
  • 大範圍整數/ID/時間戳:long。
  • 內存極度受限/大數組/網絡協議:byte/short。
  • 科學計算/圖形/物理模擬:double。
  • 金融/貨幣/精確十進制:BigDecimal。
  • 布爾邏輯/標志:boolean。
  • 文本字符:char(單字符)、String(序列)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved