如何在Java中进行数据类型转换?
2026/7/3 9:50:23 网站建设 项目流程

Java 转换分 4 大类:自动类型转换(隐式)、强制类型转换(显式)、字符串与基本类型互转、装箱拆箱(基本 ↔ 包装类)

一、自动类型转换(隐式转换,无需手动强转)

规则

取值范围小的类型 → 范围大的类型,自动完成,不会丢失精度。
转换优先级顺序:
byte → short → int → long → float → double
char → int

示例

bytea=10;intb=a;// byte自动转intlongc=b;// int自动转longfloatd=c;// long自动转floatdoublee=d;// float自动转doublecharch='A';intnum=ch;// char转int(取ASCII码)System.out.println(num);// 65

注意

shortchar不会自动互相转换;byteshort参与运算会自动提升为int

二、强制类型转换(显式转换,手动写括号)

规则

大范围类型 → 小范围类型,必须强制转换,会丢失精度、溢出
语法:(目标类型)值/变量

1. 浮点转整数(直接舍弃小数)

doublex=3.99;inty=(int)x;System.out.println(y);// 3,小数直接砍掉

2. 大数转小数溢出

intnum=130;byteb=(byte)num;System.out.println(b);// -126 溢出失真

3. long 转 int

longl=9999;inti=(int)l;

限制

布尔boolean不能和任何类型互相转换,强转会编译报错。

三、基本类型 ↔ String 字符串转换

1. 基本类型 → String(两种方式)

1)拼接空字符串(最简单)

inta=100;Strings1=a+"";

2)String.valueOf()(推荐,规范)

doubled=3.14;Strings2=String.valueOf(d);

2. String → 基本类型(包装类静态parseXxx方法)

Stringstr="123";intnum=Integer.parseInt(str);StringfStr="2.5";floatf=Float.parseFloat(fStr);StringboolStr="true";booleanflag=Boolean.parseBoolean(boolStr);

注意:字符串格式不对会抛出NumberFormatException

四、装箱 & 拆箱:基本类型 ↔ 包装类

1. 自动装箱:基本 → 包装对象

Integeri=10;// 等价 Integer i = Integer.valueOf(10);Doubled=2.5;

2. 自动拆箱:包装对象 → 基本

Integerobj=20;intn=obj;// 等价 int n = obj.intValue();

手动写法(底层原理)

// 手动装箱Integernum=Integer.valueOf(5);// 手动拆箱intx=num.intValue();

五、运算时自动类型提升(高频坑点)

  1. byte / short / char 任意两者运算,先转 int
bytea=10;byteb=20;intsum=a+b;// 结果自动int
  1. 任意整数和浮点运算,整体提升为浮点
intx=5;doubley=x+2.5;// 结果double

六、转换总结速记

  1. 小转大:自动转,无损;
  2. 大转小:强制转,可能丢精度/溢出;
  3. 数字转字符串:""拼接 /String.valueOf()
  4. 字符串转数字:包装类parseXxx()
  5. 基本与包装类:自动装箱拆箱;
  6. boolean 不参与任何数字转换。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询