Objectクラスのソースコードのコメント

パッケージjava.langで、


パブリック クラスオブジェクト{

/ **
JNI呼び出しを介して、次いでDLLに実装、及びC(C ++)によって特に*ネイティブ・メソッド、
* / 
プライベート 静的 ネイティブ 無効RegisterNativesを();

/ **
オブジェクトが初期化されるとき*このメソッドが自動的に呼び出され
* / 
静的{
RegisterNativesを();
}

/ **
*このオブジェクトのクラスを返します
* / 
公共の 最終 ネイティブクラス<?> のgetClass();

/ **
*ハッシュコード一般協定:
複数の呼び出しのhashCode()メソッドは、一貫して、オブジェクトが等しいとき、比較に使用される情報が変更されていないことを条件と同じ整数を返さなければならない同じオブジェクトの実行中* 1 Javaアプリケーション。
*整数の必要性から、同じアプリケーションへの応用のもう一つの実行は、一貫していません。
* 2.等しい(オブジェクト)メソッド、2つのオブジェクトが同じである、2つのハッシュコードメソッドを呼び出す各オブジェクトが同じ整数の結果を生成しなければならないオブジェクト。
*等号は(java.lang.Objectの)メソッドは、2つのオブジェクトが等しくない場合、任意のオブジェクトに対して、これら2つのオブジェクトが異なる整数結果を生成しなければならない必要はないハッシュコード()メソッドを呼び出す場合3。
*しかし、プログラマは、等しくないオブジェクトについては異なる整数値が生成するハッシュテーブルの性能を向上させることができることに注意すべきです。
* / 
公共の ネイティブ int型のhashCode();

/ ** 
*これが比較され、目標のメモリアドレス
 * / 
パブリック ブールのequals(オブジェクトobj){
  リターンこの == OBJ)。
}

/ **
オブジェクトをコピーするための*ローカルのクローン方法
* / 
保護された ネイティブオブジェクトのクローン()スローCloneNotSupportedExceptionを。

/ **
*オブジェクトの文字列表現を返し、非常に重要な方法
*のGetClass()のgetName();.ファイルのバイトコードの対応する完全パス名を取得java.lang.Object上位例えば
*(ハッシュコードを())Integer.toHexString、ハッシュ値列は、16進数形式に変換されます。
* / 
パブリック文字列のtoString(){
  リターンのgetClass()のgetName()+ "@" +。Integer.toHexString(ハッシュコード())。
}

/ **
*これは、オブジェクト(コール待ち法)のためのウェイクアップを待っている中で、書き換えができない待機状態(待機またはTIME_WAIT)にあるスレッド同期方法または方法は、唯一のシンクブロックと呼ばれることができます
* / 
公共の 最終 ネイティブ 無効()に通知します。

/ **
*書き換えることはできません、オブジェクト(コール待ち法)のウェイクアップのためのすべての待機は、待機状態(待機またはtime_waiting)内のスレッドで、この方法は、唯一の同期方法やシンクブロックと呼ばれることができます
* / 
公共の 最終 ネイティブ のnotifyAll();

/ **
*現在のスレッドが待機状態(time_waiting)に入りそうすることを、スレッドで呼び出しのために書き換えることができない、タイムアウト(ミリ秒)設定時間が実行可能になると、再びスレッドを超えた後、方法は唯一、同期または同期ブロック法と呼ぶことができます
* / 
公共の 最終 ネイティブ 無効待機(長いタイムアウト)がスローInterruptedExceptionあるが、


公共の 最終 無効待ち時間(長いタイムアウト、int型の nanos値)はスローInterruptedExceptionある{
  場合(タイムアウト<0 ){
    スロー 新しい、IllegalArgumentExceptionを( "タイムアウト値がマイナスです" );
  }
  もし(nanos値<0 || nanos値> 999999 ){
    スロー 新しいはIllegalArgumentException( "範囲外ナノ秒のタイムアウト値を" )。
  }
  もし(nanos値> 0 ){
    タイムアウト ++ ;
  }
  (タイムアウト)を待ちます。
}

/ **
*他のスレッドで前にこのオブジェクトを呼び出し()メソッドまたは現在のスレッドが待機するようにというのnotifyAll()メソッドを、通知します。換言すれば、この方法の振る舞いだけ待ち(0)と同じ呼び出しを行うかのように。
*現在のスレッドがこのオブジェクトのモニターを所有する必要があります。
*本リリースのスレッドモニタおよび待機の所有権をこのオブジェクトのモニターで待機中の他のスレッドを通知スレッドがメソッドまたはのnotifyAllメソッド通知を呼び出すことにより、ウェイクアップするまで、
*スレッドが継続してモニターの所有権を取り戻すために、それまで待ちます。
* / 
公共の 最後の の待機()スロー例外:InterruptedExceptionを{
  待ち時間( 0 );
}

/ ** 
オブジェクトはJVMのサポートによって呼び出さ回収された場合* 
*ファイナライズオブジェクトのメソッドのデフォルトは何もしないことです、でも呼び出した場合、JVMはすぐにオブジェクトを再利用しませんが、直接呼び出すプログラマをお勧めしません
あなたがサブクラスに必要がある場合*一部のオブジェクトが回復処理ロジック中に実行されている、あなたはfinalizeメソッドをオーバーライドすることができます。
* / 保護された ボイドファイナライズ()スローされたThrowable { } }

 

おすすめ

転載: www.cnblogs.com/yb38156/p/12396466.html