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()
方法。