【发布时间】:2014-02-23 23:58:40
【问题描述】:
我问了一个问题:Any practical difference in the use of Java's static method main?
但是没有完全得到答案,所以我想换一种说法,看看这次问题是否更清楚:
我有一个带有静态主方法的 A 类:
public class Class_A
{
...
public static void main(String[] args)
{
...
}
}
我还有一个 B 类,它在后台每天 24 小时不间断运行,并且每小时都会自动启动 Class_A。 Class_A 使用了大量的内存并且体积非常大,所以当它完成后,我希望所有的内存都被回收,我正在尽我的一份力量来确保它发生,但有时在程序的某个地方可能会出现内存泄漏,那么 Class_B 调用会更好吗:
new Class_A().main(new String[]{});
所以它的内存在它完成后会更好地回收? 还是调用: Class_A.main(new String[]{}) 更好?
【问题讨论】:
-
从静态上下文中调用它。
-
其实我看不出有什么不同。如果在静态 main 方法中分配了很多对象并且有内存泄漏,无论如何它都会泄漏。我认为唯一不干扰的方法是在另一个 JVM 中调用 Class_A