我有一个名为 Sample 的类,它在我的代码中使用。
class Sample{
.
.
Object someMethod(){
return someObject;
}
.
.
}
我打电话给:
Object ob = new Sample().someMethod();
我想知道如果我创建任何类的匿名对象(新Sample())并且如果我没有,则调用任何require方法是否有任何优势进一步使用此对象。 我会得到任何好处吗?
答案 0 :(得分:4)
我假设您询问的是您发布的代码,与以下内容形成对比:
Sample s = new Sample();
s.someMethod();
(将new Sample()
显式指定给局部变量的地方。)
这种或那种方式没有显着的性能或记忆益处。如果将引用存储在局部变量中然后调用该方法,我认为存储引用可能会有(非常)小的性能损失。但是,我怀疑许多编译器会在调用方法时注意到该变量已经死亡,并且会优化掉分配。 JIT编译器可能会完成这项工作。但我们最多只谈几个cpu周期。