equals()
方法(并且就此而言也是compareTo()
方法)可以成为性能热点(例如,在高流量的HashMap
中)。我想知道当这些案例证明有必要时,人们采用哪些技巧来优化这些方法。优化equals()方法
IntelliJ IDEA的,例如,生成以下内容:
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
...
}
你遇到那还有什么可以写一个很好的执行equals()
方法的指导方针?
我应该提到工厂方法会在用等价值调用哈希表时抛出相同的实例。 – devgeezer 2009-07-22 01:57:50
你需要小心'实习'。如果做错了,它可能导致性能问题和存储泄漏。实际上,这就是为什么调用String.intern()可能是个坏主意。 – 2009-07-22 03:08:38
这些都是值得注意的事项。我想我的优化建议通常是看看其他地方,除非你有充分的证据表明Equals(...)正在采取无法接受的长时间。 – devgeezer 2009-07-22 03:46:40