У меня есть этот кодПочему hashCode() дает разные выходные данные для одного и того же объекта в java?
class A
{
public static void main(String reds[])
{
A ob=new A();
System.out.println("Object "+ob);
System.out.println("HashCode "+ob.hashCode());
}
}
результат: Output image
Выход для выше код дает другое значение большую часть времени. Кроме того, в приведенной ниже ссылке упоминается, что печать ссылочной переменной печатает ClassName @ hashcode.
printing reference variable is not printing the object's address
Однако выход для справки печати varibale отличается от хэш-код(). Что на самом деле происходит?
Просто хотел очистить мои концепции hashcode в java.
Кроме того, непосредственно печать объекта с использованием функции println() вызывает метод toString(), который выполняет упомянутые задачи. –
@ПрасадКаркар - Да. Он вызывает 'Object's toString', если ваш класс (или любой из его прямых родителей) не переопределяет' toString() ' – TheLostMind
Он печатает результат вызова' A.toString() ', что бы это ни было. В этом случае он не был переопределен, поэтому он напечатал результат 'Object.toString()'. Ничто из этого поведения не связано с 'println()'. – EJP