Java类型转换是强类型语言的底层机制,影响运算结果、内存行为和健壮性;自动转换安全但遵循隐式提升规则,强制转换需警惕精度丢失与溢出,字符串与数值互转依赖工具方法,包装类装箱拆箱存在缓存与空指针风险。
Java 类型转换不是语法糖,而是强类型语言的底层机制。它直接影响运算结果、内存行为和程序健壮性,必须理解其规则而非死记硬背。
小范围类型赋值给大范围类型时,编译器自动完成,不丢失数据。但要注意实际执行逻辑:
byte a = 10; byte b = 20; int c = a + b; 中,a 和 b 并非直接相加,而是各自转成 int 后计算'A' 自动变成 65,不是字符拼接显式用 (目标类型) 进行转换,适用于大→小或不兼容类型间操作,但伴随风险:
(int)9.99 得到 9,不是四舍五入int x = 300; byte y = (byte)x; 结果是 44(因 300 对 256 取模)instanceof 检查,避免 ClassCastExceptionString 不属于基本类型,与数值转换需调用工具方法,且全程不自动:
立即学习“Java免费学习笔记(深入)”;
String.valueOf(x),支持所有基本类型和 null;也可用包装类的 toString(),但 null 会空指针parseXxx() 方法,如 Integer.parseInt("123");若字符串格式非法,抛 NumberFormatExceptionStringUtils.isBlank(str) 是常用防护手段Java 5 起支持自动装箱/拆箱,让 Integer 等可像 int 一样使用,但需注意:
Integer i = 100; 是装箱,int j = i; 是拆箱Integer x = null; int y = x;
for(Integer i=0; i)可能引发性能与内存问题