Java 在内存不足之前做一些事情
在Java中,是否有一种方法可以在内存耗尽之前执行某些操作。例如,保留以前文档状态的列表(用于撤消),并且仅在内存即将耗尽时删除非常旧的状态 例如,保留以前文档状态的列表(用于撤消),并且仅在内存即将耗尽时删除非常旧的状态Java 在内存不足之前做一些事情,java,memory,memory-management,Java,Memory,Memory Management,在Java中,是否有一种方法可以在内存耗尽之前执行某些操作。例如,保留以前文档状态的列表(用于撤消),并且仅在内存即将耗尽时删除非常旧的状态 例如,保留以前文档状态的列表(用于撤消),并且仅在内存即将耗尽时删除非常旧的状态 你也许可以用它做点什么。另请注意包装的一般文档。如果只能通过软引用访问对象,则在发生内存不足错误之前,对象将被垃圾收集。但是,请注意,VM不需要在此类事件之前保留这些引用,也不需要保证它们的清除顺序。您最好将它们与某种形式的持久性结合起来。是的,这当然是可能的 我可能会为您以
你也许可以用它做点什么。另请注意包装的一般文档。如果只能通过
软引用
访问对象,则在发生内存不足错误之前,对象将被垃圾收集。但是,请注意,VM不需要在此类事件之前保留这些引用,也不需要保证它们的清除顺序。您最好将它们与某种形式的持久性结合起来。是的,这当然是可能的
我可能会为您以前的文档状态使用一个列表。保证在发生内存不足异常之前处理这些异常
在某个周期性的时间间隔内,您可以从列表中清除空引用
我还建议保留对最近状态的正常引用,以便始终保证至少有一次撤消:-)
这取决于JVM实现,但如果幸运的话,JVM将保留最新的状态,并处理最旧的状态。这在JVM规范中不是严格要求的,但却是推荐的行为。可能的重复,它们是关于捕获OOME,这是关于防止它发生。