我有一个 friend 告诉了我以下内容,但我无法给出充分的理由。
someArray =.........
int a;
for(int i=0; i < someArray; i++) {
a=someArray.get(i).length();
// Do something
}
他告诉我,他在 for 循环之外声明了 a
以避免频繁的垃圾回收。
我认为在 for 循环内部声明 a
更具可读性和线程安全性。
但是,如果在 for 循环内声明,不同的实例 a
迭代将被垃圾收集,这一点我无法否认。
对我有什么建议吗?
最佳答案
垃圾收集处理对象。您拥有的是一个原始局部变量a
,它将在堆栈上分配。
因此这个问题的整个前提都是错误的。
关于java - GC 和在 for 循环中赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37455332/