全部学科
Python全栈
python
NodeJS全栈
nodejs
📅 2026-05-07 7 分钟 ✍️ juanwangdev

Java 类型转换

Java 是强类型语言,不同类型之间转换需遵循特定规则。

自动类型转换(隐式)

从小类型到大类型自动转换,无需额外代码。

Java
int i = 100;
long l = i;      // int → long,自动转换
double d = i;    // int → double,自动转换

// 转换顺序:byte → short → int → long → float → double
//           char → int → long → float → double

强制类型转换(显式)

从大类型到小类型需强制转换,可能丢失精度。

Java
double d = 3.14;
int i = (int) d;    // 强制转换,i = 3

long l = 1000L;
int j = (int) l;    // 强制转换

精度丢失示例

Java
int i = 300;
byte b = (byte) i;  // b = 44,溢出截断

double d = 9.99;
int n = (int) d;    // n = 9,小数丢失

表达式类型提升

混合运算时,结果自动提升为较大类型。

Java
byte a = 10;
int b = 20;
long c = 30L;
long result = a + b + c;  // 结果为 long 类型

byte、short、char 在运算时自动提升为 int。

常见问题

Java
int a = 10;
int b = 3;
double result = a / b;      // result = 3.0,整数除法

double result2 = a * 1.0 / b; // result2 = 3.333...,正确做法

要点总结

  • 小类型→大类型:自动转换
  • 大类型→小类型:强制转换,可能丢失精度
  • 运算时类型自动提升
想在手机上练习这篇文章的配套题目?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一篇 Java 基本数据类型
下一篇 → Java 变量作用域
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码