Java 它';是否有可能清除/释放资源来重新启动某些处理而不重新启动应用程序?

Java 它';是否有可能清除/释放资源来重新启动某些处理而不重新启动应用程序?,java,resources,Java,Resources,我正在做一个自动工作的网络绘图程序。在某个时刻,我想停止它,更改一些设置并重新启动爬网 我担心资源。我可以释放我创建的对象,但我不知道Java使用的对象。在进行一些调试时,我发现它的类比应用程序开始时多得多 有什么技术/方法/方法来释放这些?我需要担心这个 有什么技术/方法/方法来释放这些 理论上,您可以序列化应用程序的关键数据结构,重新启动并重新加载序列化的数据结构 实际上,必须编写应用程序才能做到这一点。您可能需要重新构建现有(不可重启)应用程序才能实现这一点。所以,更好的办法是将重要的应用

我正在做一个自动工作的网络绘图程序。在某个时刻,我想停止它,更改一些设置并重新启动爬网

我担心资源。我可以释放我创建的对象,但我不知道Java使用的对象。在进行一些调试时,我发现它的类比应用程序开始时多得多

有什么技术/方法/方法来释放这些?我需要担心这个

有什么技术/方法/方法来释放这些

理论上,您可以序列化应用程序的关键数据结构,重新启动并重新加载序列化的数据结构

实际上,必须编写应用程序才能做到这一点。您可能需要重新构建现有(不可重启)应用程序才能实现这一点。所以,更好的办法是将重要的应用程序状态存储在数据库表中,以便您可以随意停止和重新启动。。。并在应用程序崩溃或电源故障时幸存下来

我需要担心这个


这取决于你的要求。但我会避免以这种方式实现应用程序。

我认为您需要更好地了解哪些对象被创建,哪些对象保留在内存中。探查器工具可以帮助您—其中许多工具允许您对内存进行快照,执行一些操作,然后将当前状态与快照进行比较。这突出显示了可能的内存泄漏

此外,确保在查看内存状态之前显式运行垃圾收集器,否则您可能会看到许多实际上未被引用的对象,它们将由下一个GC收集

我不会担心JVM分配的资源。只要你释放了你分配的所有资源,你就应该没事了——一个剖析器将帮助你确保你确实释放了所有资源