只是我在编写此类应用程序时必须记住的所有事情的大脑转储。
避免内存泄漏
我有一个应用程序,每天中午运行一次,其中我有一个.我没有正确地关闭它,然后我们开始想知道为什么我们的虚拟机会在几周后崩溃。内存泄漏可以以 anyhing 的形式出现,最常见的例子之一是你没有适当地放置对象。例如,使用类的字段作为临时存储的方法。通常,该类会持续存在,引用也会持续存在。这让你带着物体,坐在记忆中,什么都不做。FileWriter
de-reference
使用正确类型的调度程序
我在该应用程序中使用了java,后来我了解到,当另一个应用程序更改系统时钟时,最好使用AdventdThreadPoolExecutor。因此,如果您打算完全基于Java,我强烈建议您使用计时器,以解决本问题中详述的所有原因。Timer
注意内存使用情况和环境
如果你的应用每天加载大量数据,并且你在同一台服务器上运行其他应用,则可能需要注意时间安排。例如,假设在中午,三个应用程序运行其计划的操作,我会说在任何其他时间运行它可能是一个明智的举动。请注意执行代码的环境。
错误处理
你可能想要配置你的应用,以便在应用发生故障的情况下让你知道是否出现问题。如果它每隔几个小时在某个时间运行一次,这意味着人们可能依赖于它,所以我会在你的Java代码中有一个函数,向你发送一封电子邮件,详细说明异常的性质。
使其可配置
同样,如果它需要在一天中的不同时间点运行,你不希望必须将它拉下来几个小时来对代码进行一些小的更改。相反,将其移植到java属性文件或XML配置(或者实际上,其他任何东西)中。这样做的好处是,您可以在任何人真正注意到差异之前更新程序并使其启动并运行。
害怕静态
关键字
那个坏男孩会让对象持续存在,即使你破坏了他们的父母参考。它是所有内存泄漏之母,如果你不小心的话。对于常量来说,这很好,你知道的东西不需要改变,需要存在于项目中才能正常运行,但是如果你将其用于项目内的随机值,你很快就会想知道为什么你的应用程序每隔几个小时就会崩溃一次而不是。syncing
道具@X86让我想起了那个。