这个bug够隐蔽的。

public class BinarySearch ...{
    public static int binarySearch(int[] a, int key) ...{
        int low = 0;
        int high = a.length - 1;
        while (low <= high) ...{
            int mid = (low + high) / 2;
            int midVal = a[mid];
            if (midVal < key)
                low = mid + 1;
            else if (midVal > key)
                high = mid - 1;
            else
                return mid; // key found            
        }
        return -(low + 1); // key not found.
    }
}

错误就在: 
            int mid = (low + high) / 2;
这行的问题是当low和high的和超过2^31-1, 也就是Java里最大整数值时,整数溢出就发生了,而mid就变成负数了, 于是JVM就抓狂了,于是ArrayIndexOutOfBoundsException就发生了。

解决方法是把它改成:int mid = low + ((high - low) / 2);

考考眼力,找下代码的bug相关推荐

  1. Ironsource sdk在Unity 2019.3.x下代码过时bug

    报错:Assets\IronSource\Editor\FacebookSettings.cs(18,48): error CS0619: 'PBXProject.GetUnityTargetName ...

  2. 故障申报系统php源码,运维不再专业救火 不会PHP照样找出代码性能问题

    作者: 凉白开 网站:www.ttlsa.com 身处互联网的SA(运维)们总感叹自己职业的苦逼,Why?我来告诉你:APP奔溃.网站打不开.网站502.搜索缓慢.应用卡顿通通找运维,运营.项目经理. ...

  3. ie6 7 8下的一些bug和解决办法

    1:li边距"无故"增加 任何事情都是有原因的,li边距也不例外. 先描述一下具体状况:有些时候li边距会突然增 加很多,值也不固定(只在IE6/IE7有这种现象),让人摸不着头脑 ...

  4. ie6下常见的bug 调整页面兼容性

    ie6下常见的bug 我们布局页面,首先符合标准,如何写一个页面的标准性? 但是ie6等浏览器本身就比较特殊,bug比较多,兵法云,知己知彼百战百胜.我们需要了解ie6的一些常见bug,这样,更好的调 ...

  5. [转]IE6下的CSS BUG枚举

    原文链接:http://luinlee.com/405/ie6csschinese/ 1.终极方法:条件注释.缺点是在IE浏览器下可能会增加额外的HTTP请求数. 代码 <!–[if lte I ...

  6. 系统入门到实战学习某项技术、有问题找“百度“、学习优秀的技术博客、找开源代码等资料

    一.系统入门到实战学习某项技术 先看视频入门到实战(B站.慕课网) 然后看书,再把知识的体系串起来 二.有问题找"百度" 1.学习各种疑惑,问搜索引擎[最大的学习资料库] ■ 搜索 ...

  7. 代码出现bug时,情商高和情商低程序员表现,产品经理:差太多

    微信又改版了,为了方便第一时间看到我们的推送,请按照下列操作,设置"置顶":点击上方蓝色字体"程序员之家"-点击右上角"-"-点击" ...

  8. Win32环境下代码注入与API钩子的实现

    Win32环境下代码注入与API钩子的实现 本文详细的介绍了在Visual Studio(以下简称VS)下实现API钩子的编程方法,阅读本文需要基础:有操作系统的基本知识(进程管理,内存管理),会在V ...

  9. c语言运行时显示内存不足,请问:c或c++运行时 遇到虚拟内存不足时咋办,帮优化下代码...

    请问:c或c++运行时 遇到虚拟内存不足时咋办,帮优化下代码 [size=4][size=5]我编的一个高精度解hilbert方程组的程序段,用的是GS跌代,但运行时出现"虚拟内存不足&qu ...

最新文章

  1. 给DataGrid添加确定删除的功能
  2. luogu P1341 无序字母对(欧拉回路应用、模板)
  3. Velocity的layout功能
  4. C++ leetCode 1. 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个
  5. 如何构建一个分布式爬虫:实战篇
  6. python自动关闭弹窗_python – 每隔x分钟创建一个tkinter窗口,然后在y秒后自动关闭它...
  7. php页面设置密码,PHP页面输入密码才能访问加密代码
  8. Java ——异常处理
  9. gpedit msc组策略面板 win10在哪里_Win10家庭版找不到组策略gpedit.msc的解决方法
  10. 中文分词软件SCWS
  11. 是引进外部函数吗_CALCULATE函数的最佳搭档:FILTER
  12. python集合排序_numpy排序与集合运算用法示例
  13. The app references non-public selectors in payload With Xcode6.1
  14. WAP PUSH的SMS PDU解析
  15. android 画圆环进度条,Android自定义圆形进度条学习
  16. windows温度监控效果最棒的软件 | Windows桌面优化、功能增强软件
  17. PC材料热性能五大分析方法(TG,TMA,DSC,DMA,DETA)
  18. java添加word书签,Jacob操作Word书签
  19. 达芬奇密码--buuctf密码学
  20. “新”在哪 | 解密新型云计算数据中心三大关键词

热门文章

  1. 带你了解CSS开发中的10个不要
  2. 百度、IBM和谷歌齐聚旧金山,人工智能未来会有哪些推进?
  3. 十六进制文件读取并转换成二进制文件
  4. python3.x 实现天气查询
  5. Python continue的用法
  6. IT工程师为什么女生少?
  7. 剑指offer题目详细版本
  8. 数据库bigint转为JAVA中的String
  9. 脚本:通过ssh、scp和expect批量复制文件到其它设备,已解决传输文件不完整的问题
  10. idea跑android项目报A problem occurred configuring project ‘:app‘