java.net.URL
对象上对 hashCode()
和 equals()
的调用。
java.net.URL
类会在内部使用 java.net.URLStreamHandler
的实例来执行 hashCode()
和 equals()
。
这会导致性能问题,因为 java.net.URLStreamHandler
会执行 DNS 查找。
根据网络的可用性和 DNS 服务器的速度,这可能会导致显著延迟。
该问题很可能可以通过改为使用 java.net.URI
来解决。
示例:
int f(URL url1, URL url2) {
if (url1.equals(url2)) return url1.hashCode();
else return url2.hashCode();
}