-3
public class ObjectClass {
    public static void main(String[] args) {
        Demo dm = new Demo();
        Object obj = dm.getObject();
        System.out.println("Class name :: "+obj.getClass());
        System.out.println("To String " + dm.toString());
        System.out.println("HashCode "+ dm.hashCode());
    }
}

输出

    Class name :: class newTopic.Object.Demo
    To String :: newTopic.Object.Demo@2a139a55
    HashCode :: 705927765

Demo@2a139a55和hascode 705927765有什么区别

4

2 回答 2

0

如果您查看Object's的 Javadoc toString(),您会看到:

类 Object 的 toString 方法返回一个字符串,该字符串由对象作为实例的类的名称、at 符号字符“@”和对象哈希码的无符号十六进制表示形式组成。换句话说,此方法返回一个等于以下值的字符串:

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

因此dm.toString()返回:

newTopic.Object.Demo      @           2a139a55

getClass().getName()  +  '@'  + Integer.toHexString(   705927765   )
                                                     dm.hashCode()
于 2020-12-10T07:04:40.573 回答
-1

这两个是Object类方法。如果你不覆盖,那么这些将被自动继承。这里我将尝试解释 3 个方法,toString()、equals() 和 HashCode()。

  1. toString - 它有助于以字符串的形式表示对象。(有关更多信息 - https://www.geeksforgeeks.org/object-tostring-method-in-java/请通过此链接)。

  2. equals 和 HashCode - equals 方法用于比较两个对象的相等性,HashCode 有助于生成对象的 hashCode。两者一起对 HashMap 很有帮助(大部分)。要获取更多信息,请阅读 HashMap 的内部实现。 https://www.geeksforgeeks.org/internal-working-of-hashmap-java/

我希望这对你有帮助。

于 2020-12-10T07:08:19.140 回答