A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 肥猫 中级黑马   /  2013-7-1 00:44  /  1938 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 肥猫 于 2013-7-3 21:55 编辑

RT

  1. <P> </P>
  2. <DIV class=blockcode>
  3. <BLOCKQUOTE>public class Question {

  4. public static void main(String[] args) {

  5. long sum = 0L;
  6. for (int i = 0; i < Integer.MAX_VALUE; i++) {
  7. sum += i;
  8. }
  9. System.out.println(sum); // 结果为2305842980222664795

  10. Long sum2 = 0L;
  11. for (int i = 0; i < Integer.MAX_VALUE; i++) {
  12. sum2 += i;
  13. }
  14. System.out.println(sum2); // 结果为2305843005992468481
  15. }
  16. }
复制代码
在EditPlus上运行是如上结果,IDE上则两个都是SUM2,求解为何?SUM数值如何来?

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

6 个回复

倒序浏览
解答开始:
我复制了你的代码 经行了验证
发现:
  1. public class d {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) {
  6.                 // TODO Auto-generated method stub
  7.                 long sum = 0L;
  8.                 for (int i = 0; i < Integer.MAX_VALUE; i++) {
  9.                 sum += i;
  10.                 }
  11.                 System.out.println(Integer.MAX_VALUE);
  12.                 System.out.println(sum); // 结果为2305842980222664795

  13. //                Long sum2 = 0L;
  14. //                for (int i = 0; i < Integer.MAX_VALUE; i++) {
  15. //                sum2 += i;
  16. //                }
  17. //                System.out.println(sum2); // 结果为2305843005992468481
  18.                 }
  19.         }
复制代码
我将sum2注释掉了 只让sum运行
得到的结果 为2305843005992468481
并没有获得LZ的自己计算的sum的值
所以我又输出了LZ的 判断条件
i < Integer.MAX_VALUE
输出的 nteger.MAX_VALUE值 为2147483647
如此长的位数 控制台输出都有点延迟
sum2的 初始值 以及判断条件 跟sum完全相同
所以 sum2的值也为2305843005992468481
总结:sum的值 不是消失了!因为 运行sum,和sum2时 控制台输出的了 两种结果
证明sum 和sum2同时运行了!
由于判断条件和初始值相同,所以可以认定为 输出结果为 2305843005992468481是正确
sum和 sum2的值都为2305843005992468481

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 赞一个!

查看全部评分

回复 使用道具 举报
楼主就是大神,试问解决了没???
我这重现不了问题
回复 使用道具 举报
神之梦 发表于 2013-7-3 21:49
楼主就是大神,试问解决了没???
我这重现不了问题

靠啊,别这样,你这样说我会脸红,真的.
回复 使用道具 举报
肥猫 发表于 2013-7-3 21:57
靠啊,别这样,你这样说我会脸红,真的.

脸红啥呀,真心崇拜啊。。。。。。
论坛里别人也在问相类似的问题,所以想问下猫大神,找到原因了没
回复 使用道具 举报
int数据加法运算
回复 使用道具 举报
你们在说些什么,我怎么完全听不懂????
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马