つまり、私はクラス A を持っていて、クラス A の静的データ メンバーとして A の配列を持っています。これは悪い習慣ですか?
1 に答える
1
Reference
Javaでは、ファイナライザーやオブジェクトで面倒で複雑なことをしない限り、メモリリークが発生します。
これまでに作成されたすべてのインスタンスのコレクションを保持することが目的の場合は、十分に注意する必要があります!! 作成されたすべてのインスタンスのコレクションは、実装方法に関係なく、メモリ リークを引き起こします。(これは、リークが制限されているか、アプリケーション全体のコンテキストで問題にならないほど小さい場合にのみ、実際に許容されます。)
(たとえば) 特に大きなオブジェクトの作成/初期化のオーバーヘッドを相殺するために既存のインスタンスのキャッシュを維持することが目的の場合は、WeakHashMap
配列を使用してゼロから実装しようとするのではなく、または既存のサードパーティのキャッシュ クラスを使用する必要があります。 .
于 2012-11-13T23:30:49.697 に答える