我是java的新手并且正在努力理解以下内容:每次运行代码时jit都会编译吗?(我知道jit优化了经常运行的代码,但我问的不是"热代码")
JIT不记得以前的运行中的任何内容.
这意味着它可以在每次运行时编译代码.JIT甚至可以在运行时重新编译代码,以便进一步优化代码或者在检测代码的使用方式发生变化时以不同方式对其进行优化.
不会被认为是热的代码将被编译,因为这可能比仅使用解释器运行它更昂贵.
当您进行分层编译时(默认情况下在Java 8中打开),它会稍微编译适度的热代码,在运行它时会重新编译它.它可以经历多个阶段.
如果要-XX:+PrintCompilation在命令行中查看正在编译的内容.