面试题 - 关于类型转换
类型转换
byte a = 100;
a = a + 1;
int b = 100;
b = b + 1;
问题
上述代码可以正常运行吗?
解答
不可以正常运行 Type mismatch: cannot convert from int to byte
需要 byte a ,得到的是 int a + 1 ,可能出现精度损失
加法优先 ,再赋值 (加法的优先级高)
内存优化
a + = 1; // 自增 相当于a++;
a = a + 1;// 算术运算+赋值
自增 - 在自己的地址里 a 直接变成 a+1 的数值
算术运算 - 需要给 1 分配一个内存 ,将 a 和 1 拿出来相加后 ,再放到 a 原有的地址里
浙公网安备 33010602011771号