我想知道在类本身中使用类的访问器方法是否会导致任何性能问题。我特别想知道 Java 编译器,但我想这在某种程度上与语言无关。
最佳答案
据我所知,较新的 JVM 非常擅长在启动时和运行中优化字节码。
J2SE SDK v 1.4.2 的文档(已经很老了,接近十年)已经提到 JVM 将在类中内联访问器调用:
“Java VM 的 Java 2 版本会在运行时自动内联简单的方法。在未优化的 Java VM 中,每次调用新方法时,都会创建一个新的堆栈框架。创建一个新的堆栈帧需要额外的资源以及堆栈的一些重新映射,最终结果是创建新的堆栈帧会产生很小的开销。 方法内联通过减少程序进行的方法调用次数来提高性能。 Java VM 内联代码内联返回常量或仅访问内部字段的方法。“(强调我的)J2SE SDK 1.4.2_02 Chapter 8 Continued: Performance Features and Tools
另外,我要确保软件最严重的瓶颈实际上是 < 插入任何你认为“慢”的东西,在本例中使用类中的访问器 >。恕我直言,过早的优化是不好的,通过猜测进行优化更糟,所以在尝试修复瓶颈之前,请尝试分析和衡量瓶颈实际上在您认为的位置。
关于java - 在类内部使用访问器方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4836443/