Cacheable接口只有一个方法getSize()。它要求所有继承类实现该方法,并输出占用缓存的大小,以便实施管理。那么为什么CacheableInt. getSize()得到的是sizeOfObject()+sizeOfInt()呢?因为任何类都继承自Object,计算空间时当然也要把它算上了。
还有一个CacheObject类,它是缓存的基本元素,来看一下它的代码:
public final class CacheObject {
public Cacheable object;
public int size;
public LinkedListNode lastAccessedListNode;
public LinkedListNode ageListNode;
public CacheObject(Cacheable object, int size) {
this.object = object;
this.size = size;
}
}