|
|
1
10
==运算符只是比较引用。 JVM中的引用只是一个标准的对象指针。这相当于一个32位或64位整数值(取决于平台)。 当你比较两个对象引用时,你实际上只是比较两个32位或64位整数,如果它们相同,你就等于相等。整数值是内存中的一个位置。 |
|
|
2
3
因为引用只是一个数字,所以引用比较归结为只比较两个数字。不需要哈希。 |
|
|
3
2
这
|
|
|
4
0
如果对象是同一个对象,则==运算符返回true。此处无法访问hashCode()或equals()。 请尝试确认:
要理解这一点,您应该首先知道,当自动装箱时,数字255将被缓存。这意味着1的Integer始终是同一个对象,但2000的Integer将始终是不同的对象。 这个实验表明,当对象相同时,“==”返回true。如果为“1”,则它们是相同的数字,并返回true。但如果“2000”被自动标记为不同的对象,则返回false。 实验还表明,“==”不使用equals()或hashCode()。 希望这能有所帮助。 |