我遇到过一种情况,我希望存储空间数据的内存缓存,这些缓存不是立即需要的,并且不是从磁盘加载的,而是通过算法生成的。因为数据是在空间上访问的,所以将基于不相关因子和距最近读取操作的位置的距离从高速缓存中删除数据。问题是Java的垃圾收集似乎与这个系统没有很好的集成。我想使用数据的空间知识使其能够被JVM垃圾收集。有没有办法将这些缓存对象标记为垃圾收集?如果JVM遇到内存不足异常,是否有办法捕获该异常并删除缓存对象以释放内存?
或者这是做错事的方法吗?
答案 0 :(得分:2)
有没有办法将这些缓存对象标记为垃圾收集?
最简单的方法是存储
如果JVM遇到内存不足异常,是否有办法捕获该异常并删除缓存对象以释放内存?
你可以做到这一点,但它并不理想,因为错误可以抛出任何线程中的任何地方。