2011-09-08 20 views
-1

静的変数がメモリにロードされないようにする方法はありますか?コアJava静的変数ロード

おかげで、

+1

なぜそれをしたいですか? –

+3

なぜメモリを占有したくない場合は静的変数を追加するのですか? – asgs

答えて

3

あなたはとにかくそれらを必要としない場合は、なぜあなたはそれらを削除しませんか?

これらは必要ですが、後である場合にのみ、最適化が実際に意味をなされるほど大きいので、遅延初期化を使用してください。このためには、たとえばLombok's annotation @Getter(lazy=true)(二重チェックイディオムを実装しています。有効なJava Item 71を参照してください)。

3

クラスをロードしないで、静的な初期化子で例外/エラーをスローすることで、静的変数ロードを停止できます。どちらの方法でも、クラスは使用できません。

コンパイルされたクラスがあり、ロード方法を変更したい場合は、コンパイルして手動で変更するか、実行時にバイトコード操作を使用できます。最初のオプションはもっと簡単になるでしょう。

0

厳密な初期化の順序がありますので、後で延期することはできません。

バイトコードから変数をリッピングすることができ、必要な作業が何であるか分かりません。