* 面试题
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);
}
}
相关文章
- Qt 中的强制类型转换:qvariant_cast ,qobject_cast
- c#中的里氏转换和Java中强制类型转换在多态中的应用
- 关于MVC中无法将类型为“System.Int32”的对象强制转换为类型“System.String”的问题。
- c与c++中的强制类型转换区别
- C++中对C的扩展学习新增语法——强制类型转换
- OC中的类型强制转换
- null的坑 和 比较运算符、相等运算符的隐式转换问题 (在javascript中,null>=0 为真,null<=0 为真,null==0却为假,null到底是什么?)
- 什么 是JavaScript中的字符串类型之间的转换问题详解? 部分4
- Java 中的强制类型转换运算符
- 强制类型转换运算符的优先级