`
zengguo1988
  • 浏览: 276227 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Java程序中的问题 short s1=1; s1+=1;为什么编译不出错

阅读更多

short s1=1;

1例->   s1=s1+1; //出错                  2例->    s1+=1;//正常
1例 使用简单赋值运算

2例 使用复合赋值运算

 

1例中的 ' 1 ‘为int类型,不会自动转换为short型 ,这样可以:s=(short)(s+1);但可能会损失精度

 

而简单赋值运算和复合赋值运算的最大差别就在于:复合赋值运算符会自动地将运算结果转型为其左操作数的类型!   

这就是1例编译不通过,2例编译却能通过的原因。

 

精度取决于他们相加的结果是否超过short所能表达的最大值,超过就丢精度  反之不丢~~

分享到:
评论
2 楼 fuchao01 2009-07-28  
+=是int型
1 楼 robustwang 2009-07-28  
基础知识。。

相关推荐

    java面试宝典

    由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误。  对于short s1 = 1; s1 += 1;由于 += 是java语言规定的运算符,java编译器会对它进行特殊...

    Java基础面试题.doc

    1、String 是最基本的数据类型吗?...由于1是int类型,因此s1+1运算结果也是int 型,需要强制转换类型才能赋值给short型。而short s1 = 1; s1 += 1;可以正确编译,因为s1+= 1;相当于s1 = (short)(s

    JAVA面试题库大全.zip

    一. Java基础部分 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 2、Java有没有goto?...为什么? 8、用最有效率的方法算出2乘以8等於几? 9、请设计一个一百亿的计算器 。。。。。

    java常见面试100题

    1. JAVA的基本数据类型有哪些 ? String 是不是基本数据类型 ? 7 2. 一个".java"源文件中是否可以包括多个类(不是内部类)?...为什么? 8 9. 用最有效率的方法算出2乘以8等於几? 8 10. 请设计一个一百亿的计算器 8

    java面试题

    1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte上,能否作用在...

    Java面试宝典2014版

    为什么? 8、用最有效率的方法算出2乘以8等於几? 9、请设计一个一百亿的计算器 10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 11、"=="和equals方法究竟有什么区别?

    java面试题(题库全).doc

    s1+1 运算结果是 int 型,需要强制转换类型;short s1 = 1; s1 += 1;可以正确编译,自动类型提升。 7. Java 有没有 goto? goto 是 java 中的保留字,现在没有在 java 中使用。 8. int 和 Integer 有什么区别? ...

    JAVA笔试题集锦(1-30)基础部分

    1、作用域public,private,protected,以及不写时的区别 ... (s1+1运算结果是int型,需要强制转换类型)short s1 = 1; s1 += 1;(可以正确编译) 10、Java有没有goto 答:java中的保留字,现在没有在java中使用

    java经典面试题汇总

    (s1+1运算结果是int型,需要强制转换类型)short s1 = 1; s1 += 1;(可以正确编译) 10、Java有没有goto 答:java中的保留字,现在没有在java中使用 11、数组有没有length()这个方法? String有没有length()这个...

    Java面试宝典(传说中的葵花宝典).doc

    由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误。 对于short s1 = 1; s1 += 1;由于 += 是java语言规定的运算符,java编译器会对它进行特殊...

    Java面试宝典

    为什么? 9 8、用最有效率的方法算出2乘以8等於几? 9 9、请设计一个一百亿的计算器 9 10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 11 11、"=="和equals方法究竟有什么区别? 11 12、...

    java 面试必考面试题

    会编译错误,因为 s1+ 1 运算时会自动提升表达式的类型,所以结果是 int 型,再赋值给 short 类型 s1 时,编译器将报告需要强制转换类型的错误。short s1 = 1; s1 += 1; 则可以正确编译,因为 += 是 Java 语言规定...

    java面试笔试题大汇总

    为什么要有GC?  基础。   第九,String s = new String("xyz");创建了几个String Object?   第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?   第十一,short s1 = 1; s1 = s1 + 1;有什么...

    Java基础面试题集.doc

    GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收...

    java各大软件公司的面试题的集和

    为什么要有GC? 基础。 第九,String s = new String("xyz");创建了几个String Object? 第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 第十一,short s1 = 1; s1 = s1 + 1;有什么错?...

    java面试总结

    为什么? 9 8、用最有效率的方法算出2乘以8等於几? 9 9、请设计一个一百亿的计算器 9 10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 11 11、"=="和equals方法究竟有什么区别? 11 12、...

    Java基础day03(ppt文档).pptx

    问:s1= s1+1; s1+=1; 与有什么不同? 2.3 关系运算符 如何比较两个值?使用比较运算符。 比较运算符比较的是两边操作数,结果是boolean的,只有true和false两种结果。 使用比较运算符的时候,要求两种数据类型...

    Java问题宝典2012版

    为什么? 9 8、用最有效率的方法算出2乘以8等於几? 10 9、请设计一个一百亿的计算器 10 10、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变? 11 11、"=="和equals方法究竟有什么区别? 12 12、...

    Java题目基础面试资料.doc

    这样的代码是不正确的,因为 s1+1 运算结果是一个 int 型,需要强制转换类型。然而,short s1 = 1; s1 += 1; 是可以正确编译的,因为 += 运算符会自动进行类型转换。 ArrayList 和 Vector 是 Java 中两个常用的...

    java常见面试题史上最全最经典希望对你有用.pdf

    由于 s1+1 运算时会自动提升表达式的类型,所以结果是 int 型,再赋值给 short 类型 s1 时,编译器将报告需要强制转换类型的错误。对于 short s1 = 1; s1 += 1; 由于 +=是 Java 语言规定的运算符,Java 编译器会对它...

Global site tag (gtag.js) - Google Analytics