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

Java 基本資料類型詳細解析與位元運算實例

     編輯:Java 綜合教學

Java 基本資料類型總覽

Java 提供 8 種基本資料類型,分為四大類:整數型、浮點數型、字元型、布林型。理解其儲存機制、取值範圍與型別轉換規則是 Java 程式設計的基石。

整數類型詳細分析

byte (1 byte = 8 bits)

  • 範圍:-128 ~ 127 (2^7 = 128,最高位為符號位)
  • 補碼表示法:正數最高位 0,負數最高位 1

實例:byte tt = (byte) 130

130 十進制 = 00000000 00000000 00000000 10000010 (32位 int)
截取後 8 位 = 10000010
最高位 1 表示負數
補碼還原:取反 01111101 + 1 = 01111110 = 126
結果:-126

實例:byte a = (byte) 0x00000111

0x111 = 16*16 + 16 + 1 = 273
二進制:00000001 00010001
截取後 8 位:00010001 = 17
結果:17

實例:byte c = (byte) 0xFF

0xFF = 255 = 11111111
最高位 1 為負數
補碼還原:取反 00000000 + 1 = 1
結果:-1

八進制與十六進制字面值

  • 八進制:以 0 開頭,如 0111 = 1*64 + 1*8 + 1 = 73
  • 十六進制:以 0x 開頭,如 0xFF = 255
  • 十進制:不能以 0 開頭 (0 除外)

short (2 bytes = 16 bits)

  • 範圍:-32,768 ~ 32,767
  • 運算陷阱:short s = 1; s = s + 1; 編譯錯誤,因 1 為 int,結果為 int 需強制轉型
  • 正確寫法:s = (short)(s + 1) 或 s += 1 (隱含強制轉型)

int (4 bytes = 32 bits)

  • 範圍:-2,147,483,648 ~ 2,147,483,647 (-2^31 ~ 2^31-1)
  • 2^31 = 2,147,483,648

long (8 bytes = 64 bits)

  • 字面值需加 L 或 l 後綴:long n = 2147483650L
  • 運算陷阱:long m = (long)(2147483647 + 4) 先以 int 運算溢位再轉 long,結果為 -2147483645
  • 正確寫法:long m = 2147483647L + 4 = 2147483651

浮點數類型

  • float:4 bytes,單精度,字面值加 f 如 3.14f
  • double:8 bytes,雙精度,預設浮點字面值類型

字元與布林類型

  • char:2 bytes,Unicode 字元,範圍 0 ~ 65535
  • boolean:邏輯真偽值,true/false,無具體大小規範

資料類型轉換規則

自動類型提升 (隱式轉換)

byte/short/char → int → long → float → double
// 運算時自動提升至較大類型
int result = 'A' + 1; // char 自動提升為 int

強制類型轉換 (顯式轉換)

double d = 3.14;
int i = (int) d; // 截斷小數,i = 3
byte b = (byte) 130; // 溢位變為 -126

關鍵細節

  1. byte、short、char 參與運算時自動提升為 int
  2. 混合類型運算結果類型取決於最高精度類型
  3. 賦值給較小類型必須強制轉型,可能導致精度損失或溢位

總結表

類型位元數位元組數預設值範圍
byte810-128 ~ 127
short1620-32,768 ~ 32,767
int3240-2^31 ~ 2^31-1
long6480L-2^63 ~ 2^63-1
float3240.0f±3.4E-38 ~ ±3.4E+38
double6480.0±1.7E-308 ~ ±1.7E+308
char162'\u0000'0 ~ 65535
boolean--falsetrue/false

最佳實踐建議

  • 整數預設使用 int,長整數用 long (加 L 後綴)
  • 浮點數預設使用 double,記憶體敏感場合用 float (加 f 後綴)
  • 金融計算避免浮點數,使用 BigDecimal
  • 明確指定類型轉換,避免隱式溢位 Bug
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved