nanoJBlend

java.lang
クラス Object

java.lang.Object

public class Object

Object クラスはクラス階層のルートクラスです。 全てのクラスにとって Object はスーパークラスであり、配列を含む全てのオブジェクトは Object のメソッドを実装しています。


コンストラクタの概要
Object()
          Object オブジェクトを生成します。
 
メソッドの概要
 boolean equals(Object obj)
          指定されたオブジェクトとこのオブジェクトが等しいかどうか判定します。
 Class<?> getClass()
          このオブジェクトの実行時クラスを返します。
 int hashCode()
          このオブジェクトのハッシュコードを返します。
 void notify()
          このオブジェクトのモニタで待ち状態にあるひとつのスレッドを起床させます。
 void notifyAll()
          このオブジェクトのモニタで待ち状態にあるすべてのスレッドを起床させます。
 String toString()
          このオブジェクトの文字列表現を返します。
 void wait()
          他のスレッドがこのオブジェクトの notify メソッドまたは notifyAll メソッドを呼び出すまで、現在のスレッドを待ち状態にします。
 void wait(long timeout)
          他のスレッドがこのオブジェクトの notify メソッドまたは notifyAll メソッドを呼び出す、または指定された時間が経過するまで、現在のスレッドを待ち状態にします。
 

コンストラクタの詳細

Object

public Object()
Object オブジェクトを生成します。

メソッドの詳細

wait

public final void wait(long timeout)
                throws InterruptedException
他のスレッドがこのオブジェクトの notify メソッドまたは notifyAll メソッドを呼び出す、または指定された時間が経過するまで、現在のスレッドを待ち状態にします。

このメソッドを呼び出すには、現在のスレッドはこのオブジェクトのモニタを獲得している必要があります。

このメソッドは現在のスレッドTをこのオブジェクトの待機セットに入れます、次にこのオブジェクトに対する同期要求をすべて放棄します。 スレッドTはスレッドスケジューリングの対象から外れ、以下の4つのうちのどれかが起きるまで休眠状態に入ります。

これらのうちのどれかの事象が発生すると、スレッドTは待機セットからはずされて、スレッドスケジューリングの対象に復活します。 スレッドは、通常どおり、このオブジェクトで同期する権利をめぐって他のスレッドと競合します。 このオブジェクトのコントロールを獲得すると、このオブジェクトに対する同期要求は wait メソッドを呼び出した時点の状態に復帰されます。 次にスレッドTの wait メソッドの呼び出しが返ります。 メソッドから戻った時点で、オブジェクトとスレッドTそれぞれの同期状態は wait メソッドを呼び出した時点と同じ状態になっています。

スレッドは通知、タイムアウト、割り込みによってではなく、「偽の目覚め」現象で起床する可能性があります。これはまれにしか発生しませんが、アプリケーションは期待するスレッドの起床条件が成立したかどうかを判定して、もし成立していなければ再度 wait するようにして、「偽の目覚め」に対してガードする必要があります。すなわち、 wait は以下のようなループ中に実行する必要があります

      synchronized (obj) {
          while (<期待する条件が成立していない場合>)
              obj.wait(timeout);
          ... // 状況に合わせた処理を実行する
      }
 
もし現在のスレッドが待ち状態にあるときに他のスレッドによって割り込まれた場合、 InterruptedException がスローされます。 この例外は、このオブジェクトのロックの状態が上述したように復元されてからスローされます。

wait メソッドは現在のスレッドをこのオブジェクトの待機セットに入れますが、このオブジェクトに対するロックだけを解除します。現在のスレッドが同期しているかもしれない他のオブジェクトのロックは、現在のスレッドが待機状態にあるかぎり保持されたままです。

このオブジェクトのモニタを獲得したスレッドだけがこのメソッドを呼び出すべきです。 スレッドがオブジェクトのモニタのオーナーになる方法について notify メソッドの説明を参照してください。

パラメータ:
timeout - 待機する最大時間(ミリ秒)。 0xFFFFFFFFL より大きな値は 0xFFFFFFFFL (約49日)に制限されます。
例外:
IllegalArgumentException - timeout が負の場合
IllegalMonitorStateException - このオブジェクトのモニタを獲得していないスレッドが呼び出した場合
InterruptedException - このメソッドを呼び出して待ち状態にあるスレッドに対して他のスレッドが割り込みをかけた場合
関連項目:
notify(), notifyAll()

wait

public final void wait()
                throws InterruptedException
他のスレッドがこのオブジェクトの notify メソッドまたは notifyAll メソッドを呼び出すまで、現在のスレッドを待ち状態にします。 このメソッドは wait(0) の呼び出しと等価です。

例外:
IllegalMonitorStateException - このオブジェクトのモニタを獲得していないスレッドが呼び出した場合
InterruptedException - このメソッドを呼び出して待ち状態にあるスレッドに対して他のスレッドが割り込みをかけた場合
関連項目:
wait(long), notify(), notifyAll()

notify

public final void notify()
このオブジェクトのモニタで待ち状態にあるひとつのスレッドを起床させます。 このメソッドを呼び出すと、このオブジェクトのモニタで待ち状態にあるスレッドのうちの一つが選ばれて起床させられます。 起床させるスレッドの選択は通信モジュールの実装に依存します。 スレッドはオブジェクトの wait メソッドを呼び出してオブジェクトのモニタで待ち状態に入ります。

このメソッドを呼び出した現在のスレッドがこのオブジェクトのロックを放棄するまで、起床させられたスレッドは処理を進めることができません。起床させられたスレッドは、このオブジェクトで同期する権利を要求している他のスレッドがあれば、通常どおりそれらと競合します。起床させられたスレッドは、このオブジェクトをロックする次のスレッドとなる、いかなる有利なまたは不利な立場にもありません。

このオブジェクトのモニタを獲得しているスレッドだけがこのメソッドを呼び出すべきです。以下のどれかによって、スレッドはオブジェクトのモニタを獲得できます。

任意の時点において一つのスレッドだけがオブジェクトのモニタを所有できます。

例外:
IllegalMonitorStateException - このオブジェクトのモニタを獲得していないスレッドが呼び出した場合

notifyAll

public final void notifyAll()
このオブジェクトのモニタで待ち状態にあるすべてのスレッドを起床させます。 スレッドはオブジェクトの wait メソッドを呼び出してオブジェクトのモニタで待ち状態に入ります。

このメソッドを呼び出した現在のスレッドがこのオブジェクトのロックを放棄するまで、起床させられたスレッドは処理を進めることができません。起床させられたスレッドは、このオブジェクトで同期する権利を要求している他のスレッドがあれば、通常どおりそれらと競合します。起床させられたスレッドは、このオブジェクトをロックする次のスレッドとなる、いかなる有利なまたは不利な立場にもありません。

このオブジェクトのモニタを獲得しているスレッドだけがこのメソッドを呼び出すべきです。 オブジェクトのモニタを獲得する方法について、 notify メソッドの説明を参照してください。

例外:
IllegalMonitorStateException - このオブジェクトのモニタを獲得していないスレッドが呼び出した場合

toString

public String toString()
このオブジェクトの文字列表現を返します。 このメソッドは、次の処理結果を返します。
getClass().getName()

戻り値:
このオブジェクトの文字列表現

equals

public boolean equals(Object obj)
指定されたオブジェクトとこのオブジェクトが等しいかどうか判定します。 equals メソッドは非 null であるオブジェクト参照について以下の等価関係を実装します。

Object クラスの equals メソッドの実装では、非 null の参照値 x,y について、 x および y が同じオブジェクトを参照している場合にだけ true を返します。

このメソッドをオーバーライドする場合、 hashCode の一般規約「 equals(Object) メソッドが true を返すオブジェクト同士は同じハッシュコードを持たなければならない」に従うために hashCode メソッドをオーバーライドする必要があることに注意してください。

パラメータ:
obj - 比較するオブジェクト
戻り値:
this == obj のとき true 、それ以外は false

hashCode

public int hashCode()
このオブジェクトのハッシュコードを返します。 以下にハッシュコードの一般規約を示します:

戻り値:
このオブジェクトのハッシュコード

getClass

public final Class<?> getClass()
このオブジェクトの実行時クラスを返します。 この Class オブジェクトは、それが表すクラスの、 static synchronized で修飾されるメソッドによってロックされるオブジェクトです。

戻り値:
このオブジェクトの実行時クラスを表す java.lang.Class オブジェクトです。

nanoJBlend

Copyright 2005-2013 Aplix and/or its affiliates. All rights reserved. Aplix Confidential and Restricted.
NTT DOCOMO and Hitachi Kokusai Electric Confidential