Gau*_*hor 0 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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
类可以是任何类型.(基元,列表或地图)如果可用,我会使用clear()或reset()运行.
这对GC 真的有用吗?或者我应该让Java自己处理它?
你绝对应该让Java自己处理这个问题.您所做的只是让您的代码更难以阅读和维护.无论如何,你所有的变量都是在方法结束时超出范围 - 而且GC知道这一点.
哦,一般来说你不应该抓住Exception......抓住特定的异常(如果你能真正处理它们).