Java jit编译器每次运行时都会编译它的代码吗?

我是java的新手并且正在努力理解以下内容:每次运行代码时jit都会编译吗? (我知道jit优化了经常运行的代码,但我问的不是“热代码”)

JIT不记得以前的运行中的任何内容。

这意味着它可以在每次运行时编译代码。 JIT甚至可以在运行时重新编译代码,以便进一步优化代码或者在检测到代码的使用方式发生变化时以不同方式对其进行优化。

不会被认为是热的代码将被编译,因为这可能比仅使用解释器运行它更昂贵。

如果你有分层编译(默认情况下在Java 8中打开),它会稍微编译一下中等热门代码,在你运行它时会重新编译它。 它可以经历多个阶段。

如果要查看正在编译的内容,请在命令行中添加-XX:+PrintCompilation