在这种情况下,我们是否有6
个布尔对象?</ p>
Boolean b1 = true;
Boolean b2 = true;
Boolean b3 = true;
Boolean b4 = new Boolean(true);
Boolean b5 = new Boolean(true);
Boolean b6 = new Boolean(true);
答案 0 :(得分:2)
有四个不同的对象。在Oracle的Java实现中,不同的对象具有不同的IdentityHashCodes
。所以:
Set<Integer> dups = Stream
.of(b1, b2, b3, b4, b5, b6)
.map(System::identityHashCode)
.collect(Collectors.toSet());
System.out.println(dups.size()); // prints 4
此外,Boolean
构造函数是deprecated
。