java:匿名对象的优点

时间:2015-01-07 04:30:35

标签: java anonymous-objects

我有一个名为 Sample 的类,它在我的代码中使用。

class Sample{
 .
 .
 Object someMethod(){
  return someObject;


 }
 .
 .
}

我打电话给:

Object ob = new Sample().someMethod();

我想知道如果我创建任何类的匿名对象新Sample())并且如果我没有,则调用任何require方法是否有任何优势进一步使用此对象。 我会得到任何好处吗?

1 个答案:

答案 0 :(得分:4)

我假设您询问的是您发布的代码,与以下内容形成对比:

Sample s = new Sample();
s.someMethod();

(将new Sample()显式指定给局部变量的地方。)

这种或那种方式没有显着的性能或记忆益处。如果将引用存储在局部变量中然后调用该方法,我认为存储引用可能会有(非常)小的性能损失。但是,我怀疑许多编译器会在调用方法时注意到该变量已经死亡,并且会优化掉分配。 JIT编译器可能会完成这项工作。但我们最多只谈几个cpu周期。