キャッシュの機能を扱いたいときにはjava.refパッケージのクラスを使うのですが、 SoftReference, WeakReference, PhantomReference の3種類のクラスがあります(私は違いがよく分かっていません)。 以下は SoftReference を使って実装したときの例です。 巨大データが1つのとき。 private SoftReference ref = null; public BigData getBigData() { BigData data = null; if (ref != null) data = (BigData) ref.get(); if (data == null) { data = ...; // でかいデータを取得or作成 ref = new SoftReference(data); } return data; } 巨大なデ
![2006-01-20](https://cdn-ak-scissors.b.st-hatena.com/image/square/06a15c64ba0ceec233d86d71001ebb29a9dcbf5d/height=288;version=1;width=512/https%3A%2F%2Fcdn.blog.st-hatena.com%2Fimages%2Ftheme%2Fog-image-1500.png)