[問題] Object的hashCode()傳回值是unique嗎?
在 Object 的說明中有一段不是很確定它的意思, 想請教一下:
public int hashCode()
...
As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for
distinct objects.
(This is typically implemented by converting the internal address of the
object into an integer, but this implementation technique is not required by the Java programming
language.)
這段話指的是, 在可行的狀況下, Object 的 hashCode() 會傳回 unique 的值嗎?
例如, 32-bit JVM 中, 至少一個可行的方法是,
籍由傳回 object 的 address 達到傳回 unique 的值,
所以 32-bit JVM 中 Object 的 hashCode() 傳回的是 unique 的值.
這個 unique 傳回值通常是 address 但不保證是 address.
但 64-bit JVM 中, 沒有可行的方法保證不同 object 可以傳回不同的值,
(因為 address 範圍超過 integer 範圍)
所以 64-bit JVM 中 Object 的 hashCode() 傳回的不一定是 unique 的值.
這樣的理解正確嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.126.30.95
推
01/13 18:46, , 1F
01/13 18:46, 1F
→
01/13 19:12, , 2F
01/13 19:12, 2F
→
01/13 19:13, , 3F
01/13 19:13, 3F
→
01/13 19:14, , 4F
01/13 19:14, 4F
→
01/13 19:16, , 5F
01/13 19:16, 5F
→
01/13 19:17, , 6F
01/13 19:17, 6F
→
01/13 19:18, , 7F
01/13 19:18, 7F
→
01/13 20:11, , 8F
01/13 20:11, 8F
→
01/13 20:21, , 9F
01/13 20:21, 9F
→
01/13 20:22, , 10F
01/13 20:22, 10F
→
01/13 20:23, , 11F
01/13 20:23, 11F
→
01/13 22:40, , 12F
01/13 22:40, 12F
→
01/13 23:14, , 13F
01/13 23:14, 13F
→
01/13 23:17, , 14F
01/13 23:17, 14F
→
01/13 23:19, , 15F
01/13 23:19, 15F
→
01/13 23:21, , 16F
01/13 23:21, 16F
→
01/13 23:23, , 17F
01/13 23:23, 17F
→
01/13 23:24, , 18F
01/13 23:24, 18F
→
01/13 23:25, , 19F
01/13 23:25, 19F
→
01/13 23:26, , 20F
01/13 23:26, 20F
→
01/14 00:19, , 21F
01/14 00:19, 21F
推
01/14 00:37, , 22F
01/14 00:37, 22F
→
01/14 00:42, , 23F
01/14 00:42, 23F
→
01/14 00:45, , 24F
01/14 00:45, 24F
→
01/14 00:47, , 25F
01/14 00:47, 25F
→
01/14 00:48, , 26F
01/14 00:48, 26F
→
01/14 00:49, , 27F
01/14 00:49, 27F
→
01/14 01:10, , 28F
01/14 01:10, 28F
推
01/14 16:13, , 29F
01/14 16:13, 29F
→
01/14 16:21, , 30F
01/14 16:21, 30F
推
01/14 16:49, , 31F
01/14 16:49, 31F
→
01/14 20:27, , 32F
01/14 20:27, 32F
→
01/14 20:29, , 33F
01/14 20:29, 33F
→
01/14 20:31, , 34F
01/14 20:31, 34F
推
01/15 13:21, , 35F
01/15 13:21, 35F