弱い参照とは何ですか?

弱い参照とは、オブジェクトとの関連性により、オブジェクトがガベージコレクションルーチンによってクリーンアップされるのを妨げないメモリ内のオブジェクトへの参照です。このタイプの参照は、通常のゴミ収集が発生しないように特別な条件が存在する場合にメモリリークを排除するのに役立つために一般的に使用されます。循環参照を使用するプログラミングアルゴリズムまたはキャッシュまたは特別な構造の利益に無関係な情報を保持して、弱い参照を使用して利益をもたらします。これらのタイプの状況での弱い参照の利用により、使用されていない指示対象オブジェクトとそれに関連する弱い参照のクリーンアップが可能になります。

コンピュータープログラミングでは、通常、オブジェクトが作成されたときにデフォルトで強力な参照が作成され、オブジェクトが占めるメモリは、強力な参照が実行可能なままである限り割り当てられたままです。強力な参照は無効になり、それに関連しますオブジェクトのメモリは、強力な参照の直後に解放され、そのオブジェクトはプログラムで使用されなくなったとしてフラグが付けられます。ソケットプログラミングや画像操作アプリケーションなどの特定の状況では、作業オブジェクトを作成するために使用されるクラスには、特定のアプリケーションが必要とする追加情報を保存するための組み込み能力がありません。接続や写真などの一時的なオブジェクトの追加の詳細は、補足キャッシュオブジェクトに保存し、参照によって過渡オブジェクトにリンクする必要があります。強力な参照の代わりに弱い参照を使用する場合、追加の情報は参照に拘束されず、指示対象物が実行不可能であるとマークされた後、ガベージコレクターによってキャッシュから削除される可能性があります。

弱い参照クラスは、通常、Java、Python、Perl、C#、および.NETフレームワークなどのガベージコレクションサブシステムによって増強される言語で利用できます。ただし、C ++では、プログラマーは通常RESですメモリのクリーンアップを保証するためにポンセブル。この言語は、弱い参照とゴミコレクションが提供する同じ機能のいくつかを提供するスマートポインタークラスを実装し、不適切なポインターのクリーンアップによって引き起こされるメモリリークを減らすのに役立ちます。

メモリ管理をさらに促進するために、ゴミ収集施設を持つ言語は、強力な参照または弱い参照以外の参照の勾配を提供することにより、言語の機能をさらに強化する可能性があります。ソフト参照やファントム参照などのデータ型は、これらの言語に含まれる場合があります。これにより、さまざまなレベルのオブジェクトの再捕獲または取引通知が可能になります。自動化されたガベージコレクションで言語を使用するプログラマーは、アプリケーションのパフォーマンスを改善するために利用可能なすべての参照クラスに慣れる必要があります。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?