Java中是否有内联函数?
2022-08-31 08:47:52
Java中是否有内联函数的概念,或者它取代了其他东西?如果有,如何使用?我听说,和方法是内联函数。我们可以创建自己的内联函数吗?public
static
final
Java中是否有内联函数的概念,或者它取代了其他东西?如果有,如何使用?我听说,和方法是内联函数。我们可以创建自己的内联函数吗?public
static
final
在Java中,优化通常在JVM级别完成。在运行时,JVM 执行一些“复杂”分析以确定要内联的方法。它可以在内联方面很激进,而Hotspot JVM实际上可以内联非最终方法。
Java编译器几乎从不内联任何方法调用(JVM在运行时执行所有这些操作)。它们执行内联编译时常量(例如,最终静态基元值)。但不是方法。
更多资源:
Wiki:在OpenJDK中内联,没有完全填充,但包含指向有用讨论的链接。
不,Java中没有内联函数。是的,当放置在公共类中时,可以在代码中的任何位置使用公共静态方法。Java编译器可以在静态或最终方法上进行内联扩展,但这并不能保证。
通常,这种代码优化是由编译器与JVM / JIT / HotSpot结合使用的代码段完成的。此外,其他优化概念(如参数的寄存器声明)在java中也是未知的。
优化不能通过java中的声明来强制,而是由编译器和JIT完成。在许多其他语言中,这些声明通常只是编译器提示(您可以声明比处理器更多的寄存器参数,其余的将被忽略)。
声明 java 方法为静态、最终或私有也是编译器的提示。你应该使用它,但没有武器。Java 性能是动态的,而不是静态的。由于类加载,对系统的首次调用总是很慢。接下来的调用速度更快,但根据内存和运行时的不同,最常见的调用在正在运行的系统中进行了优化,因此服务器在运行时可能会变得更快!