Java为了实现“一次编译,处处运行”的特性,把编译的过程分成两部分,首先它会先由javac编译成通用的中间形式——字节码,然后再由解释器逐条将字节码解释为机器码来执行。所以在性能上,Java通常不如C++这类编译型语言。
同样的,C# 通过特定语言编译器 将代码编译成中间语言 IL( intermediate language),然后通过 JIT(Just In Time) 将IL 翻译成机器码来执行,中间多了一步,因此性能上通常不如C++这类编程语言。
参考: https://tech.meituan.com/2020/10/22/java-jit-practice-in-meituan.html https://www.geeksforgeeks.org/what-is-just-in-time-jit-compiler-in-dot-net/