シングルトンも、シングルトンパターンと呼ばれるJVMで、クラスを指し、唯一のインスタンスが存在します。
二つの単一の実施形態のモード
空腹の男のスタイルはすぐにかかわらず、オブジェクトが使用されるかどうかの、ロードされる、方法がロードされます。
大量消費の書き込み性能ならば、そのようなコンストラクタでデータベースへの接続を確立するなど、より長い時間コードを占め、その後、時間に少しカトンを感じが開始します。
レイジー男の方法は、負荷の遅れである、唯一の時間は、負荷に使用されます。そして、そこにあるスレッドセーフな考慮事項は、(学生の進捗状況を考慮してのセクションが展開行う任意のスレッドを延期するために、学ぶため)。
起動しないときは、オブジェクトのインスタンス化を行うため、わずかに速く飢えた男のタイプよりも感じることが、怠惰なタイプを使用してください。最初の呼び出しは、それが操作をインスタンス化しますときしかし、私は少し遅い感じ。
飢えた男のタイプを使用することで、ビジネスの立ち上げおよび初期化の詳細フルタイムを持つことが許可されている場合はそうでない場合は怠惰な人間を使用し、ビジネスニーズを見て
/ **飢え単一の実施形態のモード* /
publicクラスGiantDragon {
クラスでインスタンス化することはできません//コンストラクタの民営化は、新しい外部
プライベートGiantDragon(){}
のインスタンスにクラス属性を準備する//オブジェクト。クラス属性ので、これだけ
プライベート静的GiantDragon新しい新しいインスタンスGiantDragon =();
//パブリック静的メソッドは、呼び出し側は、ライン12によって定義されたオブジェクトを取得するために設けられている
パブリック静的GiantDragonのgetInstance(){
戻りインスタンス;
}
}
/ **怠惰な単一の実施形態のモード* /
publicクラスGiantDragon2 {
クラスの新しい外部でインスタンス化することはできません//コンストラクタの民営
プライベートGiantDragon2(){}
//クラス属性を準備し、例えばポイントオブジェクトが、ポイントが一時的にヌルである
プライベート静的GiantDragon2インスタンス;
//パブリック静的メソッドオブジェクトのインスタンスを返し
たgetInstance(){公共静的GiantDragon2
//最初の訪問は、任意のオブジェクトのインスタンスを指していない、オブジェクトのインスタンスが見出さを
IF(例えば== NULL){
インスタンスGiantDragon2新しい新=();
}
//リターン・オブジェクト・インスタンスポイント
戻りインスタンス;
}
}
試験//
パブリック静的無効メイン(文字列[] args){
新しいインスタンスがによって与えられる//
@ = GiantDragon giantDragon新しいGiantDragon();
//のみのgetInstanceによってオブジェクト取得
GiantDragon GiantDragon.getInstance G1を=();
GiantDragon GiantDragon.getInstance = G2();
GiantDragon GiantDragon.getInstance G3 =();
//同じオブジェクト
のSystem.out.println(== G1とG2)
のSystem.out.println(== G1とG3);
}
これは通常尋ねたインタビューの時のポイント、顔の質問の多くの場合、検査はこれです:
応答時間は、三つの要素に応答する
民営の1コンストラクタ
インスタンス2.静的属性ポイント
3パブリック静的メソッドは、静的プロパティの第2工程を返したgetInstance
シングルトンとは何ですか?
民営の1コンストラクタ
インスタンス2.静的属性ポイント
3パブリック静的メソッドは、静的プロパティの第2工程を返したgetInstance