这种做法有多好?

时间:2014-04-08 10:12:12

标签: java garbage-collection

假设我有一个处理数千个用户的Java应用程序。因此,对于每个用户操作,将重复执行某个代码块,并且我创建了数百万个临时对象。我这样写我的方法。

public void myMethod(ClassB a, ClassA b) {
    ClassC c = null;
    ClassD d = null;

    try {
        c = new ClassC();
        d = new ClassD();

        // Some code which uses a, b, c, d.
    } catch (Exception e) {
    } finally {
        a = null;
        b = null;
        if (c != null) {
            c = null;
        }
        if (d != null) {
            d = null;
        }
    }
}

类可以是任何类型。 (原始,列表或地图) 如果可用,我会使用clear()reset()函数。

真的对GC有用吗?还是我应该让Java自己处理这个?

1 个答案:

答案 0 :(得分:8)

你应该完全让Java自己处理这个问题。您所做的只是让您的代码更难以阅读和维护。无论如何,你要归零的所有变量都超出了方法的范围 - 而且GC知道这一点。

哦,一般来说,你不应该抓住Exception ...抓住特定的例外(如果你能真正处理它们)。