Метод System.identityHashCode(...)
называется так, потому что он идентифицирует объекты, поэтому два разных объекта не могут иметь одинаковый идентификатор-хэш-код, верно?
Он возвращает int
. Но что происходит в системе с огромным объемом оперативной памяти, когда количество объектов превышает целочисленный диапазон 2^32
?
Не будет ли это проблемой для HashMap
и HashSet
при работе с классами, которые не переопределяют equals
и hashCode
?
EDIT:
Если int
недостаточно, могу ли я получить настоящий уникальный идентификатор для объекта?
~4.2*(10^9)
: Я предлагаю использовать простое2^XXX
, когда речь идет о чем-либо, связанном с компьютерами (т.е.2^32
— это диапазон целых чисел). - person Crozin   schedule 24.07.2010@Crozin
хорошо, поменял. Кстати, у меня 2^0 компьютеров, 2^1 мониторов и около 2^5 аудио-CD ;) - person java.is.for.desktop   schedule 24.07.2010