0

ステートフル EJB の @remove アノテーションの例では、アノテーション付きメソッドが Bean のインスタンス変数を無効にします。なんで?確かにBeanを破棄すると、その内容、つまり変数が破棄されますか?

ありがとう、ジョン

4

3 に答える 3

3

オブジェクトのすべてのフィールドを に設定すると、次のnull2 つの効果があります。

  • これは、無効なオブジェクトの再利用につながる論理エラーに対するハード バリアを提供します。アプリケーションは、暗黙のうちに誤った結果を生成する代わりにクラッシュします。

  • オブジェクト参照グラフからエッジを削除することで Java VM ガベージ コレクターを支援し、全体的なパフォーマンスを向上させます。

于 2012-05-06T19:32:04.833 に答える
2

ソースコードの例を投稿できますか? またはしないでください。積極的な設定nullは必要ありません。EJB が破棄され、すぐにガベージ コレクションが行われると、それが参照するすべてのオブジェクト (もちろん、それらへの他の参照がない場合) も同様にガベージ コレクションが行われます。

于 2012-05-06T19:27:59.450 に答える
0

ejbRemove() の場合、インスタンスの属性は消去され、クライアントはまだインスタンスへの参照を保持しています。クライアントは引き続き同じオブジェクトにアクセスできます。それは望ましくありません。

于 2014-07-16T09:24:18.607 に答える