gpt4 book ai didi

java - Object.toString() 不返回 java 中对象的哈希码值,而是给出一些字符串

转载 作者:搜寻专家 更新时间:2023-11-01 01:02:00 24 4
gpt4 key购买 nike

我写了下面的代码:-

Test ob = new Test();
System.out.println(ob.toString());
System.out.println(ob.hashCode());

输出是

Test@15db9742
366712642

我知道第二个值是对象的哈希码,它是一个整数值,但我无法理解第一个值是什么。如果它是对象的哈希码那么它怎么可能是字符串而不是整数

最佳答案

如果您阅读 docs对于 toString 非常小心:

The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of:

getClass().getName() + '@' + Integer.toHexString(hashCode())

16 进制的 366712642 正好是 15DB9742!

If it is the hashcode of the object then how can it be string and not integer?

从文档中可以看出,是类名,加上@,再加上破折号,而不仅仅是哈希码。此外,该方法的名称是 toString。如果它返回一个 int 会很奇怪,不是吗?

关于java - Object.toString() 不返回 java 中对象的哈希码值,而是给出一些字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52380179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com