java - 为什么 JIT 编译器不能用于生成二进制文件?

标签 java jit

JIT 编译器用于将 java 字节码转换为 native 机器语言。而且据我所知,没有程序可以直接将java字节码转换成二进制文件,如.exe文件。那么,为什么 JIT 编译器不能用于从字节码生成二进制文件呢?

最佳答案

JIT 编译器,动态编译代码。

  • 它为不同类型的 CPU 生成不同的代码。
  • 它为不同的内存模型生成不同的代码,例如对于 64 位 JVM,如果最大堆大小为 < 4 GB、< 24 GB、< 32 GB 或更多,您将在每种情况下生成不同的代码。
  • 它将在加载和卸载类时重新编译代码。
  • 它将根据代码的使用方式重新优化代码。例如如果曾经关闭的标志没有打开,反之亦然。

静态编译器不能做这些事情。

关于java - 为什么 JIT 编译器不能用于生成二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10385218/

相关文章:

java - java中匹配表达式时可以返回特定值吗

java - CTRL-C如何与Java程序一起工作

c# -/optimize 标志启用了哪些运行时优化?

.net - 什么时候加载程序集?

java - 未使用的基元数组 : what do javac and the JIT compiler do with it?

java - 有什么方法可以在不安装sl4a的情况下在android develop中调用python代码吗?

java - 关于 Swing 组件扩展的经验法则是什么?

java - 使用 Spring MVC 发送 html 邮件的 NULL 指针异常

c# - JIT 拒绝内联微型方法

java - int vs long 的迭代速度