黑马程序员技术交流社区

标题: x是多少?竟然是-2147483648,明明加上1之后还是long的范围。 [打印本页]

作者: lizhi    时间: 2015-5-17 09:22
标题: x是多少?竟然是-2147483648,明明加上1之后还是long的范围。
long x=Integer.MAX_VALUE+1;
System.out.println(x);
作者: pvbj0314    时间: 2015-5-17 20:51
“long x=Integer.MAX_VALUE+1;”中先执行Integer.MAX_VALUE + 1得到-2147483648,再将此值转换为long类型的,所以结果是-2147483648,如果你使用“long x=Integer.MAX_VALUE+1L”将得到2147483648,因为Integer.MAX_VALUE先转换为long类型的,再加1.
作者: 王连涛    时间: 2015-5-17 21:27
先执行静态常量,然后才去+1




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