次のようなデータ構造があります。
public class Data{
private String charData;
private int intData;
//get-set methods here
}
今、私はlruキャッシュを作成したいので、sizeofをオーバーライドする必要があります.Javaの各文字は2バイトを占有しますが、intは4バイトですが、次のように作成します:
cachedData= new LruCache<String,Data>(CACHE_MB*1024*1024){
protected int sizeOf(String k,Data v){
return 4 +2*v.getCharData().length();
}
ただし、文字列はオブジェクトであるため、文字のメモリだけでなく、さらにデータもオブジェクトであるため、私の方法が正しいかどうかはわかりません。
ところで、間違った sizeOf メソッドで最大キャッシュ サイズに達するとどうなりますか?