0

いくつかの機能を提供するコア JAR があるため、他の多くのアプリ (デスクトップ アプリ、Web アプリなど) でも使用されます。現在、このコア JAR は、作成に計算コストがかかるオブジェクトを含むオブジェクト プールを保持しています。オブジェクト プールは固定サイズであるため、一度にすべてのオブジェクトを作成してプールにデータを入力します。私がやりたいことは、私の JAR を使用するアプリがロードされるたびに、アプリケーションがそのようなプールの詳細を知らなくても、オブジェクト プールが作成されることです。また、プールの人口が原因でアプリの読み込み時間に影響が出ますが、アプリがこの段階を過ぎると、後でそのような重いオブジェクトを作成する際にパフォーマンスが低下することはありません。

これを達成する方法はありますか?

4

1 に答える 1

4

このようなことを行う唯一の方法は、クライアント アプリに明示的なフックを追加して起動ロジックを呼び出す以外に、静的初期化子をクラスに追加してプールを構築することです。

静的初期化子は、クラスが JVM によって最初にロードされたとき (クラス内のコードが呼び出される前) に実行されます。

クライアント アプリケーションが呼び出す起動ロジックに何らかのフックを提供することをお勧めします。これにより、起動ロジックを予期しない時間に実行するのではなく、この種のことを正確に制御できます。

于 2010-02-18T03:58:11.687 に答える