* 面试题
short s=1, s = s+1;
short s=1, s+=1;
上面两个代码有没有问题,如果有,那里有问题
第一个有问题:
s = s + 1 ;
默认提升byt,short,char-->int-->long-->float-->double:
s-->int类型:s+1:属于int类型:
用短整型接收int类型的值:有问题!必须强制类型转换
第二个代码:s+=1;扩展的赋值运算符,隐藏了一个强制类型转换,所以不会出错
* */
public class OperatorDemo2 {
public static void main(String[] args) {
//
short s = 1 ;
//
//必须强制类型转换
//
s = (short) (s + 1) ;
short s =1 ;
s +=1 ;//隐藏了一个强制类型转换 s = (short)(s+1) ;
System.out.println(s);
}
}