【发布时间】:2015-04-08 04:05:54
【问题描述】:
关于内存使用和变量实例化哪个更好或没有区别:
这个
for(int i = 0; i < someValue; i++)
{
Obj foo = new Obj();
Use foo.....
}
相对于:
Obj foo;
for(int i = 0; i < someValue; i++)
{
foo = new Obj();
Use foo.....
}
【问题讨论】:
-
第一个版本更好,因为它可能会缩短对象的生命周期。
-
在内存使用方面没有区别。不要再重视这些微小的细节,而要着眼于大局!
-
不要试图做编译器的工作。
-
@Cicada:这是一个完全合理的问题
-
@nosid 绝对不是真的。即使假设 javac 确实生成了不同的字节码,JIT 也会进行活性分析。
标签: java optimization memory jvm