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
2条答案
按热度按时间sauutmhj1#
如果你看看
Object
的toString()
,您将看到:class对象的tostring方法返回一个字符串,该字符串由对象作为示例的类的名称、at符号字符“@”和对象哈希代码的无符号十六进制表示形式组成。换句话说,此方法返回的字符串等于:
getclass().getname()+'@'+integer.tohexstring(hashcode())
因此
dm.toString()
返回: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/
我希望这对你有帮助。