KriegeR
@KriegeR
Software Engineer

Реализация hashCode(); в классе Object (Java)

Всем доброго вечера!

Хотел спросить, где можно найти реализацию
public native int hashCode();
из класса Object? Платформа значения не имеет. Просто стало интересно, а гугление толком ничего не дало.

Спасибо!
  • Вопрос задан
  • 6490 просмотров
Решения вопроса 1
@antalus
Исходный код OpenJDK можно скачать с openjdk.java.net/
Люди уже задавались этим вопросом blogs.tedneward.com/CommentView,guid,eca26c5e-307c-4b7c-931b-2eaf5b176e98.aspx, думаю это правильное направление.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
png
@png
Посмотрите определение метода. Там ключевое слово native стоит. Это означает, что реализация написана на СИ.
И скорее всего зависит от платформы выполнения.
Для этого существует механизм JNI.
Ну и приведу ссылку на официальную документацию.
Для себя я так понимаю, что для простого Object в hashCode кодируется адрес ссылки объекта в памяти.
Ответ написан
kk86
@kk86
Вот тут нашёл не саму реализацию, но объяснение её принипа:
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 JavaTM programming language.)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы