来自:https://blog.csdn.net/qq_33611068/article/details/77369050

有这样一道题:

编程测试,遍历 0 到 int所能表示最大的正数,将消耗的时间打印。

下面是我的代码:

1 int temp = 0;2 Date dt1 = newDate();3 long begintime =dt1.getTime();4 for(int i=0;i<=Integer.MAX_VALUE;i++){5 temp =i;6 }7 Date dt2 = newDate();8 long endtime =dt2.getTime();9 System.out.println(endtime - begintime);

这段代码是会陷入死循环的,就死在了for里面。

刚开始的时候我还以为是这个数字太大了,一时半会儿遍历不到,我就将这个数字打印了一下:结果是2147483647。然后我就将代码中的Integer.MAX_VALUE逐步换成1000000,5000000,……,逐渐逼近这个数,等到换到21亿的时候,我发现还是可以快速执行完毕的。

然后我就怀疑是Integer.MAX__VALUE属性出现了某种问题,就将其换成了2147483647,还是死循环,看来怀疑错了,问题还是出现在这个数字身上。

这时候我再一次的检查了一次for循环,重点检查了终止条件,果然是这里出了问题,看我的for循环:

for(int i=0;i<=Integer.MAX_VALUE;i++){

temp=i;

}

只有当i比int最大值大的时候才能结束循环,可问题是……

i本身就是int类型的,它怎么可能比int的最大值还大!!!

for循环运行到 i = Integer.MAX_VALUE ,即 i = 2147483647,i再加1,就变成了-2147483648

(这个地方明白源码,反码,补码的同学已经懂了吧,不明白的等我详细的整理一个专题或者留言询问……请关注我)

这个负数与int最大值来比较,结果显然,要比最大值小,循环继续执行,重复这个过程,for循环永远都不会执行完毕。

java integer最大值_Integer的最大值相关推荐

  1. java 蓝桥杯算法训练 最大值与最小值的计算(题解)

    试题 算法训练 最大值与最小值的计算 资源限制 时间限制:1.0s 内存限制:512.0MB 输入11个整数,计算它们的最大值和最小值. 样例输入 0 1 2 3 4 5 6 7 8 9 10 样例输 ...

  2. 【Kay】Java输出3个数的最大值

    Java返回3个数的最大值 class Max {public static void main(String[] args) {//②获取三个数的最大值Scanner input = new Sca ...

  3. YDOOK:Java: 获取 Long 数据类型的最大值和最小值

    YDOOK:Java: 获取 Long 数据类型的最大值和最小值 © YDOOK JY Lin 文章目录 YDOOK:Java: 获取 Long 数据类型的最大值和最小值 © YDOOK JY Lin ...

  4. java integer valueof_一文读懂什么是Java中的自动拆装箱

    本文主要介绍Java中的自动拆箱与自动装箱的有关知识. 基本数据类型 基本类型,或者叫做内置类型,是Java中不同于类(Class)的特殊类型.它们是我们编程中使用最频繁的类型. Java是一种强类型 ...

  5. 享元模式在 Java Integer 中的应用

    我们先来看下面这样一段代码.你可以先思考下,这段代码会输出什么样的结果. Integer i1 = 56; Integer i2 = 56; Integer i3 = 129; Integer i4 ...

  6. Java Integer取值范围是多少呢?

    转自: Java Integer取值范围是多少呢? 下文笔者将使用实验的方式,讲述Integer类的取值范围,如下所示: Integer同int类型取值一致其取值范围是从-2147483648 至 2 ...

  7. java integer int 比较_java Integer和int之间的比较问题是什么?

    展开全部 java Integer和int之间e68a84e8a2ad3231313335323631343130323136353331333365633864==的比较问题.求解释 public ...

  8. 【java】java Integer 缓存 一定是 -128~127 吗

    1.概述 我们都知道 java Integer是有缓存的,缓存范围是 -128~127.但是这个值是一定的吗? 不一定.看源码.缓存大小居然可以改变 /*** Cache to support the ...

  9. Java: Integer比较127, 128

    Java: Integer用==比较时127相等128不相等的原因 Integer数值在 -128 到 127 之间是从缓存中去取值,所以返回的是同一个对象,可以直接Integer==Integer, ...

  10. java integer 相等_Java Integer.equals()判断相等

    首页 > 基础教程 > 常用类 > 常用 Integer类 Java Integer.equals()判断相等 Java中判断Integer是否相等可以用equals()或者&quo ...

最新文章

  1. window.name实现的跨域数据传输
  2. 让大规模深度学习训练线性加速、性能无损,基于BMUF的Adam优化器并行化实践...
  3. MATLAB中的字符串处理
  4. opencv图像处理常用完整示例代码总结
  5. 经典永驻,重温设计模式 |硬核!
  6. 测试回收站2测试回收站2测试回收站2测试回收站2测试回收站2测试回收站2测试回收站2测试回收站2测试回收站2测试回收站2测试回收站2
  7. BUUCTF Web [ACTF2020 新生赛]Exec
  8. 写软件的需求分析全方位攻略
  9. matlab怎么画矩形世界地图,matlab绘制世界地图
  10. 会议论文有影响因子吗_会议论文和期刊论文的区别
  11. eclipse查看ftl文件
  12. cad画直线长度与实际不符_cad画规定长度直线的方法步骤图
  13. Android 高级自定义Toast及源码解析
  14. [4G5G专题-124]:5G培训部署篇-2-主要信令流程
  15. 区分度评估指标-KS
  16. wps2016向程序发送命令_word文档打开,提示“向程序发送命令时出现问题”的原因...
  17. Ubuntu20.04微信安装 简单 使用方便
  18. Tensorflow基础语法以及网络搭建
  19. 【在线教育直播】直播很卡怎么办?
  20. 降噪耳机哪个牌子好?给大家推荐几款质量比较好的降噪耳机品牌

热门文章

  1. 新国标下的2020年电动单车企业蓬勃发展
  2. 希腊字母发音,打印体手写体对照
  3. 爬虫练习生|爬虫前奏(爬虫介绍、工具的安装、爬虫分类、爬虫须知)
  4. Windows注册表详解
  5. 雷电云手机无限雷币版v1.60
  6. SphereEx张亮:“开源和商业化不能形成对立”
  7. Linux设置静态IP
  8. Linux操作系统安全防护指导手册(详细截图)
  9. 【Android安全】Oneplus 5T 救砖 刷机 root并通过SafetyNet Attestation检测
  10. 现在学生物出路真有那么不济吗?(@Mengjie Chen)