对于我来说,将我的clear()方法中的两行复制并粘贴到构造函数中而不是调用实际方法会更好吗?
编译器可以执行该优化。JVM也可以。编译器编写者和JVM作者使用的术语是“内联扩展”。
如果是这样,有什么不同?
测量它。通常,您会发现这没有什么区别。而且,如果您认为这是性能热点,那么您就在错误的地方寻找;这就是为什么您需要测量它。
如果我的构造函数进行了10个方法调用,每个方法仅将实例变量设置为一个值,该怎么办?
同样,这取决于生成的字节码和Java虚拟机执行的任何运行时优化。如果编译器/ JVM可以内联方法调用,它将执行优化以避免运行时创建新堆栈帧的开销。
什么是最佳编程实践?
避免过早的优化。最佳实践是编写可读性和设计良好的代码,然后针对应用程序中的性能热点进行优化。



