哈希值
363字约1分钟
2024-12-02
hashCode
方法
hashCode
方法具有提高哈希结构容器的效率- 两个引用对象,如果都是指向同一个对象,那么
hashCode
值绝对是一样的 - 两个引用对象,如果指向的不是同一个对象,那么
hashCode
值是不一样的(有极低的概率会一样) - 因为Java是运行在虚拟机上的,所以不能拿到真的内存地址;
hashCode
值是根据对象的内部地址(所谓的内部地址就是真正的对象地址,但Java是跑在虚拟机上的,所以就不能拿到这个真正的内部地址)来转换成一个整数来实现的,所以hashCode
值不能说是内存地址,也不等于内存地址 - 在集合中,如果需要的话会重写
hashCode
方法
toString
方法
默认返回:全类名 + @ + 哈希值的十六进制,一般子类往往会重写
toString
方法,用于返回对象的属性信息当只输出对象时,
toString
方法往往也会被调用public class ceshi { public static void main(String[] args) { c c = new c(); // 即使不输入hashCode()也可以输出该对象的哈希值 System.out.println(c); // a.hashCode()的意思是该对象的hashCode值 System.out.println(c.toString()); } } class c { }
重写
toStrng
方法@Override public String toString() { // 返回该对象的属性值 return "A{" + "name='" + name + '\'' + ", say=" + say + '}'; }