что на самом деле происходит при передаче объектов в java?

Я знаю, что когда мы передаем объекты, мы передаем их ссылку как значение. Но это значение, которое вы получаете, правильно использует метод hashcode()(согласно моим тестам, это то же самое)? Поскольку hashcode()не является адресом памяти и не гарантирует постоянное получение уникальных значений, могут ли происходить странные вещи, такие как коллизии при передаче объектов?

(Предполагая, что hashcode()не был переопределен, т. е. он возвращает то же значение, что и System.identityHashCode())

Три подобных вопроса, но я не могу найти соответствующий ресурс, в котором обсуждается, какое значение передается и как его получить?

РЕДАКТИРОВАТЬ: Вот мой тест. По умолчанию toSting()использует внутри hashCode()и преобразует его в шестнадцатеричное значение. Итак, когда мы передаем объекты, передается ли это значение? Или что делает java, чтобы отслеживать все объекты (передаваемые), чтобы не было никаких ссылочных коллизий?

Object o = new Object();
System.out.println(o);
System.out.println(o.toString()); //both prints same thing - java.lang.Object@10385c1
5
задан samsamara 14 July 2012 в 06:54
поделиться