一个比较难忘的BUG
本学期开设了软件测试课程,在课上有讨论到bug,想到bug,真是很令人头疼的东西,相信每个程序都多多少少会有几个头疼的bug。
初学java时写过一个字符串判断的循环,之前学的C++字符类型用“==”做比较,随手就用了“==”判断是否相等。然后就。。。出现了bug,最后统计出来的结果怎么都不对。开始我以为是数据出现了问题,把数据在比较前输出了一遍,发现一样啊,也没有写成“=”,逻辑上也没发现错误,很是头疼。改了半天才开始怀疑是“==”的问题,然后上网找了一下,原来要用equal()方法来判断。
原因是 ==是用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。
equal()是用来比较两个对象内部的内容是否相等的。