hashCode()
方法返回:返回根据地址生成的十进制哈希值。
1)两个引用,如果指向的是同一个对象,则哈希值肯定是一样的!
2)两个引用,如果指向的是不同对象,则哈希值是不一样的
3)哈希值主要根据地址号来的!, 不能完全将哈希值等价于地址。
toString()
方法返回:全类名 + @ + 哈希值的十六进制。
子类经常会重写toString()方法,用于显示各对象信息
当直接输出一个对象时,默认调用toString方法。
例如:System.out.println(a); ===> System.out.println(a.toString());
简单案例
package object; public class Hashcode_toString { public static void main(String[] args) { A a = new A("小范"); System.out.println(a); //重写toString B b = new B(); System.out.println(b.toString()); // 没有重写toString,返回 对象类型与十六进制hashCode System.out.println(b.hashCode()); // 输出十进制hashCode // toString源码: /* * public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); } getClass():返回对象的运行类型,特别有用!(因为运行类型是可变了,会经常出现变化。) */ //getClass(): Object string = new String("hello"); System.out.println(string.getClass()); } } /** * @author FSH * */ class A{ private String name; public A(String name) { super(); this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "A [name=" + name + "]"; } } class B{ }
在之前的 "