Java中空对象的哈希码必须是什么?
根据这篇文章的评论,可以或值。这是特定于实现的。但是在同一实现中,为什么会返回不同的值。例如:hascode
null objects
throw NPE
zero
Objects.hashcode
hascode(instance)
public class EqualsTesting {
public static void main(String[] args){
String p1 =null;
String p2 = null;
System.out.println(Objects.hashCode(p1));
System.out.println(p2.hashCode());
}
}
输出:
0
Exception in thread "main" java.lang.NullPointerException
at BinaryTrees.EqualsTesting.main(EqualsTesting.java:14)
如果是这种情况,这是否会影响允许的位置。(它可能是要么要么key look-up
HashMap
null Key-value pairs
hash
bucket 0
throw a NPE
)