类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。
一、重要方法介绍:
(1)hashCode
源码:
public native int hashCode(); 需要子类去根据自身特点实现。
(2)equals
源码:
public boolean equals(Object obj) { return (this == obj); } 底层使用==实现的,而==比较的是值。如下图,比较的是a和b指向的值
(3)toString
源码:
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }二、基本数据类型对Object的继承 (1)基本数据,四类八种
(2)以Long类型为例:
1)底层hashcode
public int hashCode() { return (int)(value ^ (value >>> 32)); } 可以看出hashcode的值是通过值算出来的,hashcode是唯一的2)equals方法
public boolean equals(Object obj) { if (obj instanceof Long) { return value == ((Long)obj).longValue(); } return false; } 可以看出基本类型底层也是等号实现的,比较的值。