深入了解类型转换技巧
前置知识铺垫:
隐式转换:当小的数据类型和大的数据类型在一起运算的时候,小的会先提升为大的的数据类型,再进行运算。
特殊关注:byte short char 在运算的时候,都会直接提升为int类型
例如:
public class Day{ public static void main(String [] args){ // 隐式转换 小范围转给大范围直接转,但是大的不能直接给小的 byte a = 2; byte b = 3; /* byte c = a + b 错误原因:这里的a和b是byte类型,他们在运算之前将自己提升为int类型, 然后再进行运算,两个int相加后还是int,把int类型赋值给byte大的给小的,不能直接给,必须 强制类型转换.. */ //大 int big = a+b; //小 byte mine = (byte)(a+b); System.out.println(big); System.out.println(mine); } }
Java存在常量优化机制
public static void Eg2 (){ /* Java存在常量优化机制,2,4属于int类型且属于常量,则触发优化机制,2+4=6属于byte的范围, 所以默认转化为了byte如果大于byte范围,则出现编译错误。 */ byte b = 2 + 4; System.out.println(b); }

浙公网安备 33010602011771号