首发原文:http://www.laozizhu.com/view.jsp?articleId=60
情景上这样的:我有一个重写了equals方法的类,该类源码如下。然后用一程序将此类多次循环put到HashMap中去,但每次put到1500次左右时,就会出现NullPointerException。
在map.put的方法中,会先去判断put进去的对象是否已经存在于map中,判断方法调用的就是该对象的重写的equals方法,如果说 我写的 equals有问题的话,为什么前1000多次左右不会出现问题而在最后出现问题呢?起初以为是放到HashMap中的对象太大会出现内存溢出, 但并未出现outofmemory异常,用JProfiler进行监测时也发现和heap的使用也没关系……有哪位兄弟帮我解释一下……
下面是代码,包括old代码以及修改后的代码
本文通过一个具体的案例探讨了在Java中重写equals方法时可能遇到的问题,特别是NullPointerException的产生原因,并提供了修正后的equals实现。
3971

被折叠的 条评论
为什么被折叠?



