本文共 810 字,大约阅读时间需要 2 分钟。
*面试题:
byte b1=3,b2=4,b;b=b1+b2;b=3+4;哪句是编译失败的呢?为什么呢?b=b1+b2;编译失败: byte,short,char之间相互不转换,一旦进行运算的,默认提升为一个int类型 变量相加,是先看数据类型,最终相加后的结果是否在当前这个类型范围之内 b=3+4; 编译正确: 常量相加,是运算,看当前结果是否在范围之内!
面试题:
short s=1;s = s+1; (错误)默认类型提升,提升为int类型,,不能用short去接收int类型的数据 ,// 解决方案:强制类型转换short s=1;s+=1;(正确)对于扩展的赋值运算符 s+=1 不等价于 :s = s +1 ; 等价于: s = (s)(s+1) ; 扩展的赋值运算符隐藏了强制类型转换!上面两个代码有没有问题,如果有,那里有问题。
面试题: 逻辑双与&& 和逻辑单与&的区别?
a:共同点:效果是一样的b:逻辑双与&& ,如果左边的表达式如果是false,那么右边不执行(具有短路效果)逻辑双|| :如果左边的表达式是true,那么右边不执行(具有短路效果)面试题:byte可以用在switch语句的表达式?long可以作为switch语句的表达式?String可以作为switch语句的表达式?switch语句后面的表达式:能跟的类型:byte,short,int,charjdk5以后,可以跟枚举jdk7以后,可以String类型面试题:break和continue的区别?break让循环结束,continue是跳出当前循环,直接进行下一次循环。*转载于:https://blog.51cto.com/13670525/2094905