更好的是只有静态方法的助手类或具有相同辅助方法的类实例

时间:2017-10-25 14:38:50

标签: java performance compilation

我有一个与性能有关的问题以及编译器如何在Java中工作。

如果我有一个完全没有状态的课程

public class Helper {

  public String helperMethod(String text) {
     ....
     return value; 
  }
}

而不是

public class StaticHelper {

  public static String helperMethod(String text) {
     ....
     return value; 
  }
}

然后我做了几次类型的调用

new Helper().helperMethod("bla");

编译器会以某种方式优化对象创建,还是应该在垃圾收集器和分配的内存上预期开销(我认为最小)?

否则我应该StaticHelper.helperMethod("bla"),但这会阻止我使用流畅的界面,我更喜欢。

1 个答案:

答案 0 :(得分:1)

除了片刻之外,这些案件没有区别。 Java中的嵌套类(静态内部类)没有对Outer类的引用,但Inner类具有对Outer的引用。您可能遇到性能问题,因为如果您在代码中引用了内部类,则JVM无法对Outer类进行GC。