2

我有一个名为的类Sample,它在我的代码中使用,如下所示:

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


 }
 .
 .
}

我称之为:

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

我想知道如果我创建匿名“Object of any class (new Sample() ) and call anyrequire Object”是否有任何优势method if I don't have any further use of this

4

1 回答 1

5

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

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

(您在其中显式分配new Sample()给局部变量)。

一种或另一种方式没有显着的性能或内存优势。如果您将引用存储在局部变量中,然后调用该方法,我想存储引用可能会有(非常)小的性能损失。但是,我怀疑许多编译器会注意到,一旦调用该方法,该变量就会失效,并会优化分配。JIT 编译器可能会完成这项工作。但我们最多谈论几个 cpu 周期。

于 2015-01-07T04:48:47.163 回答