黑马程序员技术交流社区

标题: java中关于short的赋值运算问题 [打印本页]

作者: 张慧    时间: 2013-8-28 17:52
标题: java中关于short的赋值运算问题
short a=3;  a+=4;
//a=a+4;
  这里如果是采用标红的那段代码时,在编译时程序就会报错。这个原因和:
  byte x=3,y=5;
  byte sum;
  sum = x +y;
  这里编译时出的错原因是一样的道理,因为在赋值的过程中还有不确定的变量,所以有可能会出现因为数据超出值的范围来造成精度的问题。但是上面的赋值运算a+=4它其实是在底层已经做了自动转换了,即a+=4等效为a=(short)(a+4).
(注意:如果是int类型的运算,即使在赋值时出现不确定的值也是不会出错的,因为运算的默认类型是int类型,所以即使越界了,说明符号位就为1,那么所得值就是二进制的数值为取反加1,再带上符号位,例如:
      int x=Integer.MAX_VALUE;
      int y=x+1;
      System.out.println(y);//y=-2147483648.
)

像这种细节问题,之前自己从来是不在意的,可以看了视频后,感觉获益良多啊。看来基础的东西还是要巩固的越扎实越好。

作者: 许庭洲    时间: 2013-8-28 20:14
值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2