类型转换:面试题
1.请问该代码是否有误?

答:有误,之前说过byte在运算时会提升为int,所以是int a+b,c不能用byte
.
2.该如何修正代码?
.
答:我们可以将c的类型换成int
.
3.下列修正代码错在哪里?该如何正确修正?

答:这么转换毫无意义,因为a和b本来就是byte类型,而且这样转换,a和b还是会提升为int。
正确转换应该是先用括号提升a+b的优先级让它们先算,然后再强转(a+b)![]()
4.下列代码是否有误?有误请说明原因

错误回答:有误,3和4是字面量,之前说过字面量默认类型是int,所以运算后结果还是int,大的给小的不能直接给,编译错误
引出:在回答这个问题之前,我们需要知道java存在“常量优化机制”




浙公网安备 33010602011771号