Java中JVM与JIT的区别是什么?
虽然JVM和JIT都是Java平台的一部分,但它们之间的关键区别在于,JVM是一个解释器,而JIT是一个编译器。 JVM是运行Java程序所必须的,因为它将Java字节码转换成机器码。JIT则是通过用机器代码替换热的Java字节码来提高性能。
及时编译器或JIT是Java虚拟机的一个组成部分,它与垃圾收集器一起,顾名思义,进行及时编译。它能够将Java代码直接编译成机器语言,这可以大大改善Java应用程序的性能。
顺便说一下,它不能保证哪些代码会被编译以及何时被编译。JIT通常会在Hotspot JVM中编译热代码,一旦它的执行超过一定的限制,比如一个方法被调用超过10K次,就会被转换成机器语言等等。
Java中JIT和JVM的区别?
下面是JVM和JIT在Java编程平台上的一些区别。
1.JVM和JIT的主要区别在于它们的目的,JVM的主要目标是提供平台独立性,而JIT的目标是通过将更多的代码编译成机器语言来提高JVM的性能。只是要记住,这种编译也需要时间,所以把所有的代码翻译成本地代码是不值得做的。这就是为什么JIT大多将经常使用的代码编译成本地代码。
2.2.JIT和JVM的另一个区别是,JIT是JVM的一部分。JIT的一个例子是Oracle的Hotspot JIT,它与Hotspot JVM一起。它之所以被称为热点,是因为它的Just in time编译器只将热代码编译到本地语言中,这些代码在90%的时间内执行。
有一个阈值设置,如果某些代码的执行时间超过了这个阈值,那么它就有资格被及时编译。顺便说一下,Hotspot并不是唯一包含及时编译器的JVM,还有其他的JVM,比如Oracle的原始JRockit。
3.最后,JVM是一个比JIT更古老的概念。JIT实际上是在Java最初发布多年后为了提高JVM的性能而发明的,而Java虚拟机则是Java最初发布的一部分。
以上就是关于Java中JVM和JIT的区别的全部内容。正如我所说,JIT是JVM的一部分,用于在执行期间动态编译或将Java字节码翻译成本地机器语言代码,以提高JVM的性能。JVM对于运行你的Java程序至关重要,因为它将Java字节码转换为机器码,并且Java程序在JVM内运行。这也是Java独立于平台的原因之一。