我正在使用 play 框架。我想让我的一个对象每次都保持 Activity 状态,无论它现在是否使用,因为它稍后会被使用。
创建对象是一个耗时的过程(包含10L条记录)。如果一段时间内没有访问该对象,则会对其进行垃圾回收。
我的想法是访问该对象并在对其进行GC之前使其保持 Activity 状态。我尝试使用 @Before 注释访问函数中的对象,但它不起作用。我的主要想法是保持对象的活力。如果我知道 gc 函数在什么时间被调用,那么我可以使用 playframework 中的作业功能来保持它的 Activity 。
最佳答案
只有当不再有对象的引用时,垃圾收集器才会清理该对象。您的设计应该确保这一特定对象存在并且至少被一个变量引用,以确保它在垃圾收集期间不会被删除。
您可能想在此处研究使用单例风格的设计模式,它将确保存在对对象的引用,但一次只有一个对象。
这样,该对象就不会被垃圾回收,因为它至少被一个变量引用。
我希望这会有所帮助。
关于java - 什么时间后调用 gc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7831433/