1

我有一个应用程序,它有几个非常大的数据块,需要很长时间来计算。我将它们中的每一个都保存为 SoftReference,因为我可以重新计算它们,但这需要很长时间。所以只要我有足够的内存,我就想重用我已经计算过的东西。这正是 Java SoftReference 的用途。

但是,我真正想做的是对这些数据块进行排名,因为有些数据块更重要,计算时间比其他数据块要长得多,所以我想让垃圾收集器最后收集这些数据。

我不想要将这些块写入磁盘的解决方案。我知道该怎么做。我只想能够在我的软引用上设置垃圾收集的顺序/优先级。

4

1 回答 1

0

不保证清除软引用的时间或清除对不同对象的一组此类引用的顺序。

通常,JVM 实现在清理最近创建或最近使用的引用之间进行选择。

于 2020-04-19T16:14:47.230 回答