个人理解:java是混合型。混合了解释型和编译型的特性。
JVM在执行java字节码的时候是一边将字节码翻译成本地代码执行的,这看起来应该是解释型的特性,但JVM有一个机制是当某段代码执行次数到达一个阈值的时候,会将这段字节码编译成本地代码保存起来,当下次执行这段代码时直接执行本地代码,这样大大提高了执行效率,那为什么不在第一次执行该代码时就编译成本地代码保存起来呢,这看起来是一个时间与空间平衡的问题。毕竟保存本地代码是要消耗存储空间的。
我们可以使用JVM参数来设置这个阈值:
-XX:CompileThreshold=10
同时加上以下参数以打印出编译信息:
-XX:+PrintCompilation
参考:http://blog.csdn.net/zq602316498/article/details/39152349
原文:http://www.cnblogs.com/longzhaoyu/p/5029582.html