java虚拟机当中既然已经有了解释器,为什么还有一个jit(just in time,即时编译器)?jit已经把字节码编译成了本机代码了那还要运行时解释器干吗?
希望高手指点,先多谢了.

解决方案 »

  1.   

    java虚拟机的执行引擎有三种
    1.就是我们常说的解释器
    2.另外一种就是jit,这种情况,第一次执行的字节码会编译成本地的机器代码,被缓存在系统中,以后可以随时调用
    3.还有一种自适应的优化器,这种方法里,虚拟机开始的时候解释字节码,但是会监控运行中程序的活动,并记录下使用最频繁的代码段,虚拟机会把这些活动最频繁的代码段编译成本地代码其实以上提的都是软件实现的虚拟机,还有一种虚拟机是由硬件芯片构成,它用本地方法执行java字节码
      

  2.   

    应该说有部分常用的代码会给JIT成本地代码,而不常用的代码JVM会解释运行