我已经创建了我在任务计划正在调度作为作业的控制台应用程序。我在我的申请一个一流水平的静态变量,下面是示例代码。当我的工作是第一次,没有问题运行。当我立即重新运行该作业时,由于在finally块中将其设置为NULL并在try块中执行“ sb.clear()”,因此收到“对象引用”错误-静态变量将仅初始化一次。
Class Temp
{
public static StringBuilder sb = new StringBuilder();
try
{
sb.clear();
... some code
}
catch
{}
finally
{
sb = null
}
}
我的任务计划程序作业将每24小时运行。由于我将变量设置为NULL,因此第一次运行一段时间后会收集垃圾吗?这样,当我的工作在24小时后第二次运行时,我就不会遇到“对象引用”错误(考虑到将再次创建静态变量)。
我想知道什么是静态变量的生命时间,如果我设置为NULL,如果不是我设置为NULL。请澄清。
答案 0 :(得分:0)
静态变量的生存期与您的应用程序正在运行的时间一样长。 在此处查看更多详细信息:
Scope and persistence Lifetime of data in variable static
我希望这些信息有用
答案 1 :(得分:-2)
sb.clear(); //不能在null stringBuilder上使用 在这种情况下,最后将sb变量设置为null。 所以不要使用Final