Java最基本的类型,其他类都将Object
作为超类,Obect类方法含有一下方法:
类型 | 方法 | 说明 |
---|---|---|
protected Object | clone() | 创建、返回复制对象 |
boolean | equals(Object obj) | 对象比较,注意值比较区别 |
protected void | finalize() | GC方法,尽量少用 |
Class | getClass() | 返回对象使用方法 |
int | hashCode() | 返回对象散列数 |
void | notify() | 唤醒对象监控等待的单一线程 |
void | notifyAll | 唤醒对象监控等待的所有线程 |
String | toString() | 返回对象字符串形式 |
void | wait() | 线程等待 |
void | wait(long timeout) | 线程等待 |
void | wait(long timeout, int nanos) | 线程等待 |
Java.util.Object类
getClass方法
返回此对象的运行类,返回运行时对象static synchronized
方法锁定状态下的类。
涉及Java反射。
.getClass()
方法与.class
区别在于
1. .getClass()
是实例方法,类的Class
类实例是通过.class
获得。
2. 出现的时期不同,.getClass()
是运行时动态加载;.class
是运行时加载;
hashCode方法
返回对象的散列值,应用在HashMap等需要hash计算的子类。
这里的约定:
1. 同一对象多次使用hashCode,应返回相同的整数值。
2. 如果两个对象在equals()
返回值为true
,应返回相同的整数值。
3. 若equals()
返回值为false
,返回值应当不同。然而hashCode()
返回的不是所在的物理地址,也不是逻辑地址。hashCode()
相同的两个对象,可能对象不同。
因此,重写equals()
方法后,应当重写hashCode()
方法。