在Java中,如果我有很多本地对象,如果我将它们定义为实例变量,它会运行得更快吗?例如,如果我的 func1() 被多次调用,比如在一个循环中,JVM 会在每次调用该函数时继续实例化和垃圾收集 list2 吗?相反,我是否应该重用相同的 list1 对象来防止垃圾收集和实例化开销?
class A {
List list1 = new ArrayList();
private void func1() {
list1.clear();
// add new objects list1
List list2 = new ArrayList();
// add new objects to list2
}
}
优化器会足够聪明地跳过垃圾收集并自动重用对象吗?