Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在内存不足之前做一些事情_Java_Memory_Memory Management - Fatal编程技术网

Java 在内存不足之前做一些事情

Java 在内存不足之前做一些事情,java,memory,memory-management,Java,Memory,Memory Management,在Java中,是否有一种方法可以在内存耗尽之前执行某些操作。例如,保留以前文档状态的列表(用于撤消),并且仅在内存即将耗尽时删除非常旧的状态 例如,保留以前文档状态的列表(用于撤消),并且仅在内存即将耗尽时删除非常旧的状态 你也许可以用它做点什么。另请注意包装的一般文档。如果只能通过软引用访问对象,则在发生内存不足错误之前,对象将被垃圾收集。但是,请注意,VM不需要在此类事件之前保留这些引用,也不需要保证它们的清除顺序。您最好将它们与某种形式的持久性结合起来。是的,这当然是可能的 我可能会为您以

在Java中,是否有一种方法可以在内存耗尽之前执行某些操作。例如,保留以前文档状态的列表(用于撤消),并且仅在内存即将耗尽时删除非常旧的状态

例如,保留以前文档状态的列表(用于撤消),并且仅在内存即将耗尽时删除非常旧的状态


你也许可以用它做点什么。另请注意包装的一般文档。如果只能通过
软引用
访问对象,则在发生内存不足错误之前,对象将被垃圾收集。但是,请注意,VM不需要在此类事件之前保留这些引用,也不需要保证它们的清除顺序。您最好将它们与某种形式的持久性结合起来。

是的,这当然是可能的

我可能会为您以前的文档状态使用一个列表。保证在发生内存不足异常之前处理这些异常

在某个周期性的时间间隔内,您可以从列表中清除空引用

我还建议保留对最近状态的正常引用,以便始终保证至少有一次撤消:-)


这取决于JVM实现,但如果幸运的话,JVM将保留最新的状态,并处理最旧的状态。这在JVM规范中不是严格要求的,但却是推荐的行为。

可能的重复,它们是关于捕获OOME,这是关于防止它发生。