I.はじめに
Java Objectクラスは、すべてのクラスの親クラスです。つまり、JavaのすべてのクラスはObjectを継承し、サブクラスはObjectのすべてのメソッドを使用できます。Objectクラスはjava.langパッケージにあり、コンパイル時に自動的にインポートされます。クラスを作成するときに、親クラスを明示的に継承しない場合、Objectは自動的に継承され、Objectのサブクラスになります。
2.Objectメソッドの詳細な説明
ソースコードを読むと、Objectに次のものが含まれていることがわかります:Object()、getClass()、hashCode()、equals()、clone()、toString()、notify()、notifyAll()、wait(long)、 wait(long、int)、wait()、finalize()の合計12個のメソッド。
これらのメソッドの機能の簡単な説明:
1. Object():デフォルトのコンストラクタ
public Object() {
throw new RuntimeException("Stub!");
}
复制代码
2. clone():このオブジェクトのコピーを作成して返します
@RecentlyNonNull
protected Object clone() throws CloneNotSupportedException {
throw new RuntimeException("Stub!");
}
复制代码
3. equals():他のオブジェクトがこのオブジェクトと等しいかどうかを示します
public boolean equals(@Nullable Object obj) {
throw new RuntimeException("Stub!");
}
复制代码
4. finalize():このメソッドは、ガベージコレクターがオブジェクトへの参照がこれ以上ないと判断したときに、オブジェクトのガベージコレクターによって呼び出されます。
protected void finalize() throws Throwable {
throw new RuntimeException("Stub!");
}
复制代码
5. getClass():オブジェクトのランタイムクラスを返します
@NonNull
public final Class<?> getClass() {
throw new RuntimeException("Stub!");
}
复制代码
6. hashCode():オブジェクトのハッシュ値を返します
public int hashCode() {
throw new RuntimeException("Stub!");
}
复制代码
7. notify():このオブジェクトモニターで待機している単一のスレッドをウェイクアップします
public final native void notify();
复制代码
8. notifyAll():このオブジェクトモニターで待機しているすべてのスレッドをウェイクアップします
public final native void notifyAll();
复制代码
9. toString():オブジェクトの文字列表現を返します
@NonNull
public String toString() {
throw new RuntimeException("Stub!");
}
复制代码
10. wait():他のスレッドがこのオブジェクトのnotify()またはnotifyAll()を呼び出すまで、現在のスレッドを待機させます
public final void wait() throws InterruptedException {
throw new RuntimeException("Stub!");
}
复制代码
11. wait(long timeout):現在のスレッドがこのオブジェクトのnotify()またはnotifyAll()の呼び出しを待機するようにします
public final void wait(long timeout) throws InterruptedException {
throw new RuntimeException("Stub!");
}
复制代码
12. wait(long timeout、int nanos):別のスレッドがこのオブジェクトのnotify()またはnotifyAll()を呼び出すか、他のスレッドが現在のスレッドに割り込むか、実際の時間が経過するまで、現在のスレッドを待機させます
public final native void wait(long var1, int var3) throws InterruptedException;
复制代码