现在cache可以说是每个程序都必备的一种技术。网上也不乏一些开源的,成熟的cache产品,例如,OS Cache。前几天,手痒,也想自己写一个简单的cache,但在控制cache大小方面遇到了障碍。
问题:如果用户设定cache大小为1M,那么怎么确保cache占有的空间不会超过1M?也就是怎样获取一个Object的大小??
想来想去,想到了一种笨拙的方法:先将该对象序列化,然后根据ByteArrayInputStream.toArrayBytes()方法获取大小,但这样做显然效率低下,而且序列化也不是一件容易的事情。
请高手指教,欢迎大家讨论!