java - Java中的内联

标签 java jvm inlining inline-method

在 C++ 中,我可以声明一个“内联”方法,编译器很可能会内联它。据我了解,Java 中没有这样的关键字。

如果 JVM 决定这样做,内联是否完成?我能以某种方式影响这个决定吗?

最佳答案

其他几个答案表明只能内联 final方法 - 这是不正确的,因为 HotSpot 足够聪明,只要它们没有被覆盖,就能够内联非 final方法 。当加载一个覆盖该方法的类时,它可以撤消其优化。显然,使方法最终意味着永远不需要......

基本上让 JVM 完成它的工作 - 它在确定内联位置方面可能比你要好得多。

您是否有过确信 JVM 做得不好的情况?假设您使用的是 HotSpot,您是否尝试过使用服务器版本而不是客户端?这可以产生巨大的差异。

关于java - Java中的内联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1159087/

相关文章:

java - 同时关联和依赖?

java - 根据具有长值的值对映射进行排序

java - 如何解决 Heroku 上的 javax.net.ssl.SSLHandshakeException?

java - 在不同的 JVM 版本下运行两个 Fuse 实例

c++ - 不能内联函数定义之前的调用?

java - Java (JIT) 可以内联递归方法吗?

java - 没有为命名空间 [/] 映射操作且操作名称错误

java - 除了 Class 对象之外,Permgen Space (sun 1.6 VM) 中还存储了什么?

c++ - 为什么将函数包装到 lambda 中可能会使程序更快?

java - Firebase 数据库无法写入数据