1.getClass:java
public final native Class<?> getClass();數組
返回當前對象運行時的類的對象。數據結構
2.hashCode:性能
public native int hashCode();this
這個方法是爲哈希表這種數據結構提供支持的。(例如HashMap)spa
hashcode 的通用約定爲:線程
1)在一個java應用中在同一個對象上調用屢次hashCode方法應該返回一樣的int結果。code
可是int結果沒必要保持一致性在同一個java應用的兩次執行中。對象
2)若是兩個對象是相等的(equals方法返回true),則hashCode方法必須返回相同的int結果。接口
3)若是兩個對象經過equals方法不相等,不要求他們的hashCode方法必須返回不一樣的int結果,可是
不一樣對象上返回不一樣的hashCode能夠提升哈希表的性能(縮短鏈表的長度)。
3.equals:
public boolean equals(Object obj) {
return (this == obj);
}
4.clone:
protected native Object clone() throws CloneNotSupportedException;
注意兩點:第一此方法是protected,只有子類能夠調用;第二,子類必須實現Cloneable接口,否則此方法會拋出CloneNotSupportedException異常。
全部數組默認爲實現了Cloneable接口,因此數組都有clone方法。另外,這個方法是建立一個新的對象,而且使用被拷貝的對象的屬性值來初始化新對象的屬性。
而並非將屬性也拷貝一份。因此此方法是一個淺拷貝,並非深拷貝。
5.toString:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
6.notify:
public final native void notify();
喚醒一個正在等待此對象上的線程。若是有多個等待線程,則任意挑選一個喚醒。具體挑選哪一個依賴具體實現。
被喚醒的線程不會當即執行,直到當前線程釋放對象上的鎖。被喚醒的線程還要和其餘想要獲取鎖的線程競爭鎖。
此方法只能被已經獲取對象上的鎖的線程調用。
7.notifyAll:
public final native void notifyAll();
喚醒全部等待在此對象上的線程。其餘和notify方法同樣。
8.wait:
public final void wait() throws InterruptedException {
wait(0L);
}
致使當前線程進入等待狀態直到被喚醒(notified或者interrupted),此方法和調用wait(0L, 0)效果同樣。
public final native void wait(long timeoutMillis) throws InterruptedException;
9.finalize
此方法在java9中已經申明爲Deprecated,並且在其餘版本中也極不推薦使用,因此不作介紹了。