考考眼力,找下代码的bug

原创 2007年09月28日 13:53:00

这个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的5种方法,你用过几个?

有不少的新手程序员,刚开始都是从修BUG开始做起的。 修bug有助于熟悉项目,了解大概哪些类参与了执行线路,相互调用关系又是如何,结构设计上有什么特点。 对于新手程序员而言,在复杂...
  • qq_39707996
  • qq_39707996
  • 2017年12月22日 09:40
  • 167

程序员如何在复杂代码中查找到程序的bug?

最近在挑选更合适的物品来兑换,请牛牛们不要着急。 程序员新人怎样在复杂代码中找 bug? 姚冬,程序员: 我曾经做了两年大型软件的维护工作,那个项目有10多年了,大约3000万行以上...
  • lenolong
  • lenolong
  • 2015年09月08日 22:22
  • 1839

找bug的小技巧

原文链接:http://www.myexception.cn/other/1391145.html 1. 输出语句   代码调试的首要工具就是插入可靠地、真实的输出语句。当输出语句数...
  • u012858622
  • u012858622
  • 2014年03月24日 14:54
  • 1663

处理找不出原因的bug或者异常的思路

今天,在Android客户端上使用国密算法对PDF进行电子签章的时候,爆出了invalid key encoding的异常,找遍网上的所有资料,都没有发现问题所在。无奈之下,求助部门经理,半小时解决了...
  • zephyr_g
  • zephyr_g
  • 2016年12月20日 10:51
  • 852

找bug记

上周在线上系统发现了两个bug,值得记录下查找的过程和原因。以后如果还有查找bug比较有价值的经历,我也会继续分享。 第一个bug的起始,是在线上日志发现一个频繁打印的异常——java.lang.A...
  • xinjianwuhen1991
  • xinjianwuhen1991
  • 2016年03月10日 21:19
  • 393

【HTML5游戏开发】简单的《找不同汉字版》,来考考你的眼力吧

一,准备工作 本次游戏开发需要用到lufylegend.js开源游戏引擎,版本我用的是1.5.2(现在最新的版本是1.6.0)。 引擎下载的位置:http://lufylegend.googlecod...
  • yorhomwang
  • yorhomwang
  • 2013年03月01日 22:30
  • 31265

找寻 手游BUG的学习

英语的学习路上总会有很多有趣的新故事。 这个月备考等级考试,学习了沪江网校,使用了百词斩在英语的学习的路上大胆的尝试着想要改变自己英语学习现状。 等我再经历一段时间的尝试再来和大家分享我...
  • u010349629
  • u010349629
  • 2017年07月09日 21:44
  • 381

考考你的眼力 又一张神奇的图片

考考你的眼力,很奇怪的图恐怖哦~右邊的黑衣人怎麼沒有...... 到底是是什麼啊,是鬼,是靈異物體...還是有電腦修改過,還是另有破綻??天色太暗?? 首先聲明的是,這並不是合成照. 看清楚 . fr...
  • Suprman
  • Suprman
  • 2007年01月01日 16:58
  • 2807

一款工具助你减少java代码bug

场景: 今天收到了一封邮件,生成环境出现了“/by zero”错误,这个错误足足经过两天的排查才找到了原因,能否在上线前就尽量规避一些错误呢? 那个问题产生的原因如下: if(Math.abs(...
  • lk_blog
  • lk_blog
  • 2015年05月31日 15:18
  • 2260

以下代码找bug

做到一个笔试题:下面代码找bug。 public static void test(String event, String eventDesc){ Integer c = ...
  • u013028876
  • u013028876
  • 2018年01月15日 22:23
  • 90
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:考考眼力,找下代码的bug
举报原因:
原因补充:

(最多只允许输入30个字)