读书人

一路基础的面试题目

发布时间: 2012-11-10 10:48:50 作者: rapoo

一道基础的面试题目
题目如下:
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
这道题考查java基本类型转换和复合赋值运算的知识。
java是强类型的语言,参与运算的数据类型必须一致才能运算。那么在执行"s1 = s1 + 1"的时候,1默认是int型,变量s1会自动转换为int型,两个int型的加起来还是int型,int型不能显式转化为short型,所以"s1 = s1 + 1"有错,编译不通过。而" s1 += 1"是正确的,它与前面的"s1 = s1 + 1"不同的地方,是因为它使用了复合赋值运算,而简单赋值运算和复合赋值运算的最大差别就在于:复合赋值运算符会自动地将运算结果转型为其左操作数的类型!

读书人网 >编程

热点推荐