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

Java 資料類型轉換完整指南:從基本類型到包裝類與字串

     編輯:Java 相關知識

一、基本數值類型之間的轉換

Java 將 byte、short、char、int、long、float、double 視為同類數據,按精度從低到高排列。自動類型提升(低→高)無需特殊語法:

byte b = 10;
int i = b; // 自動提升

強制類型轉換(高→低)需显式轉型,可能導致精度損失或溢位:

int i = 200;
byte b = (byte) i; // 結果為 -56,發生溢位
建議:避免不必要的窄化轉換;若必須轉換,先檢查數值範圍。

二、包裝類別體系

六大包裝類別對應基本類型:

基本類型包裝類別
booleanBoolean
charCharacter
intInteger
longLong
floatFloat
doubleDouble

String 和 Date 本身即為類別,無包裝類別概念。

三、基本類型與包裝類別互轉

基本類型 → 包裝類別

Integer obj = new Integer(100); // 構造函數(已棄用)
Integer obj = Integer.valueOf(100); // 推薦:靜態工廠方法

包裝類別 → 基本類型

int val = obj.intValue(); // 通用方法
// 數值型包裝類別還提供:
double d = obj.doubleValue();
float f = obj.floatValue();

JDK 5+ 支援自動裝箱/拆箱,編譯器自動插入轉換碼。

四、String 與其他類型互轉

String → 數值/包裝類別

Integer i = Integer.valueOf("123"); // 推薦
Double d = Double.parseDouble("3.14"); // 直接得基本類型

數值/包裝類別 → String

String s = String.valueOf(123); // 通用靜態方法
String s = Integer.toString(123);
String hex = Integer.toHexString(255); // "ff"
String bin = Integer.toBinaryString(10); // "1010"

字元/字串互轉

char c = "Hello".charAt(0); // 'H'
char[] arr = "Hello".toCharArray(); // ['H','e','l','l','o']

五、字元的數值轉換

區分兩種語意:

  • ASCII 碼轉換:'1' → 49(直接賦值給 int)
  • 數字字面值轉換:'1' → 1(使用 Character.getNumericValue('1'))

六、Date 類別轉換

int 分量 → Date

Date d = new Date(2024-1900, 5, 15); // 年月日(月份 0-based)
Date d = new Date(2024-1900, 5, 15, 14, 30, 0); // 含時分秒

長整型毫秒數 ↔ Date

Date d = new Date(System.currentTimeMillis());
long ms = d.getTime(); // 取得毫秒數

Date → 字串

String s = d.toString(); // 預設格式
// 生產環境建議使用 SimpleDateFormat 或 java.time 套件

總結建議

  • 優先使用 valueOf/parseXxx 而非構造函數。
  • 處理字串轉數值時務必捕獲 NumberFormatException。
  • 新專案請改用 java.time 套件(LocalDateTime 等)替代 Date。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved