Java基本类型转换分自动转换(小转大,安全)和强制转换(大转小,需手动且有风险),boolean不参与数值转换;char与int可直接按Unicode码点互转;字符串与基本类型转换需通过包装类方法,并注意异常处理。

Java基本类型转换分自动转换(隐式)和强制转换(显式)两种,关键看数据范围大小和是否可能丢失精度。
自动类型转换(小转大,安全)
当把小范围类型的值赋给大范围类型变量时,Java自动完成转换,不丢失信息。
- byte → short → int → long → float → double
- char → int → long → float → double(char本质是无符号16位整数)
- 示例:int a = 100; long b = a; ✅ 合法,自动转
- 注意:boolean 不参与任何数值转换,不能转成int,也不能被其他类型转
强制类型转换(大转小,需手动,有风险)
把大范围类型赋给小范围类型时,必须显式加括号声明,且可能截断或溢出。
- 语法:目标类型 变量 = (目标类型) 原值;
- 示例:double d = 99.99; int i = (int) d; → i 得到 99(直接截去小数,不四舍五入)
- 再如:int x = 200; byte b = (byte) x; → b = -56(超出byte范围[-128,127],按补码截取低8位)
- 编译器不会阻止这种转换,但运行时可能产生意外结果,务必确认值在目标范围内
字符与数字的特殊转换
char和int之间可直接转换,本质是ASCII/Unicode码点的整数映射。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~