6
我想了解内存泄漏的其中一个示例,我在其中实现了hashCode()的示例,而不是equals()。我已经通读了那篇文章,如果一个人因为违反合同而战胜了另一个人也必须被过度缠身。为什么不在Java中实现equals方法导致内存泄漏
这是示例代码
import java.util.HashMap;
import java.util.Map;
public class MemoryLeak {
static class Key {
Integer id;
Key(Integer id) {
this.id = id;
}
@Override
public int hashCode() {
return id.hashCode();
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Map m = new HashMap();
while (true)
for (int i = 0; i < 10000; i++)
if (!m.containsKey(i))
m.put(new Key(i), "Number:" + i);
}
}
我知道我还没有实现了equals()上目的方法。但我想站在内部为什么内存泄漏被创建。
感谢