オブジェクトの利用頻度とヒープ状況を判断して開放される。 アクセスの少ないオブジェクトから開放される。 OutOfMemoryError が発生する前に開放してくれる。 GC が実行されたとき、参照がひとつもない状態であれば開放される。 一時的に参照を保持しておきたい場合に有効。 WeakHashMap クラスで自動的に開放される HashMap も作れる。 こんな感じです。名前からして雰囲気は似ていますが、メモリ解放される条件は大きく違います。 一番大きな違いは GC が実行されたときに参照が残っていても開放されない可能性があるのが SoftReference で、 GC が実行されたときに参照が残っていなければ開放されるのが WeakReference です。少し分かりづらいので、実際の挙動を確認してみたいと思います。 メモリ解放のタイミングを確認してみる ということで、参照方法による
![Android のメモリ管理 #4 SoftReference と WeakReference を活用する | DevelopersIO](https://cdn-ak-scissors.b.st-hatena.com/image/square/6a5101f1fa8a46e7bddd4e0dbc99f40ef8912969/height=288;version=1;width=512/https%3A%2F%2Fdevio2023-media.developers.io%2Fwp-content%2Fuploads%2F2012%2F10%2Fcatch10.png)