我有一个与性能有关的问题以及编译器如何在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")
,但这会阻止我使用流畅的界面,我更喜欢。
答案 0 :(得分:1)
除了片刻之外,这些案件没有区别。 Java中的嵌套类(静态内部类)没有对Outer类的引用,但Inner类具有对Outer的引用。您可能遇到性能问题,因为如果您在代码中引用了内部类,则JVM无法对Outer类进行GC。