bmmxz

 

面试题 - 关于类型转换

类型转换

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 原有的地址里

posted on 2022-08-22 20:41  白木木夕子  阅读(29)  评论(0)    收藏  举报

导航