tostring方法输出的解释以及tostring out和hashcode输出之间的区别

lx0bsm1f  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(385)
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 代码705927765

sauutmhj

sauutmhj1#

如果你看看 ObjecttoString() ,您将看到:
class对象的tostring方法返回一个字符串,该字符串由对象作为示例的类的名称、at符号字符“@”和对象哈希代码的无符号十六进制表示形式组成。换句话说,此方法返回的字符串等于:
getclass().getname()+'@'+integer.tohexstring(hashcode())
因此 dm.toString() 返回:

newTopic.Object.Demo      @           2a139a55

getClass().getName()  +  '@'  + Integer.toHexString(   705927765   )
                                                     dm.hashCode()
3z6pesqy

3z6pesqy2#

这两个是对象类方法。如果不重写,则这些将自动继承。这里我将尝试解释3个方法,tostring(),equals()和hashcode()。
tostring—它有助于以字符串的形式表示对象(更多信息-https://www.geeksforgeeks.org/object-tostring-method-in-java/ 通过此链接)。
equals和hashcode-equals方法用于比较两个对象的相等性,hashcode有助于生成该对象的hashcode。两者在hashmap中都很有用(大部分)。要获得更多信息,请阅读hashmap的内部实现。https://www.geeksforgeeks.org/internal-working-of-hashmap-java/
我希望这对你有帮助。

相关问题