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{
}

在之前的 "