我有一个数据结构,如下所示:
public class Data{
private String charData;
private int intData;
//get-set methods here
}
现在,我想创建一个 lru 缓存,我需要覆盖 sizeof...因为 java 中的每个 char 占用 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 方法达到最大缓存大小会发生什么?