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,并且在其余版本中也极不推荐使用,因此不作介绍了。