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

Java 長整型與整型轉換完全指南:基本類型與包裝類雙向互轉

     編輯:Java 綜合教學

Java 長整型與整型轉換完全指南:基本類型與包裝類雙向互轉

實戰中頻繁遇到 long ↔ int、Long ↔ Integer 互轉,區分「基本類型」與「包裝類」是關鍵。本文整理四種場景的標準寫法,附原理說明。

一、 基本類型轉換(無包裝類參與)

方向代碼說明
long → intlong a = 10L; int b = (int) a;強制轉型,可能溢出截斷高位
int → longint a = 10; long b = a;自動加寬,無損精度

二、 包裝類轉基本類型(拆箱)

方向代碼說明
Long → intLong a = 10L; int b = a.intValue();調用包裝類 intValue()
Integer → longInteger a = 10; long b = a.longValue();調用包裝類 longValue()

三、 基本類型轉包裝類(裝箱)

方向推薦寫法替代寫法說明
int → IntegerInteger a = 10; (自動裝箱)Integer.valueOf(10)優先用自動裝箱或 valueOf 享緩存
long → LongLong a = 10L;Long.valueOf(10L)同理

四、 包裝類互轉(長整型包裝類 ↔ 整型包裝類)

無直接轉換方法,需經基本類型中轉:

Long l = 100L;
Integer i = l.intValue();   // Long → int → Integer (自動裝箱)

// 反向
Integer i2 = 100;
Long l2 = i2.longValue();   // Integer → long → Long (自動裝箱)

五、 避坑提醒

  • 溢出風險: long → int 強轉時,超出 Integer.MAX_VALUE 會截斷高位,導致數值錯誤。
  • NullPointerException: 包裝類為 null 時調用 intValue()/longValue() 會拋 NPE,**使用前必判 null**。
  • 自動裝箱緩存: Integer.valueOf(-128~127) 返回緩存對象,Long 同理(緩存範圍同)。比較值請用 equals()。

六、 一表總覽

來源目標代碼範例
long (基本)int (基本)int b = (int) a;
Long (包裝)int (基本)int b = a.intValue();
int (基本)long (基本)long b = a;
Integer (包裝)long (基本)long b = a.longValue();
int (基本)Integer (包裝)Integer a = 10;
long (基本)Long (包裝)Long a = 10L;
Long (包裝)Integer (包裝)Integer i = l.intValue();
Integer (包裝)Long (包裝)Long l = i.longValue();
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved