运行时编译有什么好处,java编译的特点

  运行时编译有什么好处,java编译的特点

  Java在JVM中编译运行,那么这种运行方式的优势是什么?

  如何解决写爬虫IP受阻的问题?立即使用。

  与C/C语言编译后可以直接生成CPU能理解的代码格式,俗称机器码不同,Java将代码编译成虚拟机可执行的字节码。Java虚拟机根据不同的平台(Windows、Linux、Mac等)可以用硬件实现,也可以用软件实现。).这样做的好处是,Java代码一旦编译成字节码,就可以在不同的虚拟机平台上运行,也就是我们常说的“编译一次,到处运行”。除此之外,虚拟机还提供了托管环境、数组越界、动态类型、安全权限等动态检测,使我们能够更加关注业务逻辑的发展。

  Java虚拟机

  从虚拟机的角度来看,要执行Java代码,首先需要将其编译后的类文件加载到Java虚拟机中。加载的Java类将存储在方法区域。Java虚拟机将运行时内存区分为五个部分,分别是方法区、堆、PC寄存器、Java方法栈和本地方法栈。

  Java运行过程

  在运行过程中,每当调用进入一个Java方法,Java虚拟机就在当前线程的Java方法栈中生成一个栈帧,泳衣存储局部变量的操作数和字节码。这个帧的大小是预先计算好的,Java虚拟机不要求栈的内存是连续的。退出方法时,无论是正常返回还是异常返回,Java虚拟机都会弹出当前帧并丢弃。从硬件角度来说,Java字节码不能直接运行,所以Java虚拟机需要将字节码翻译成CPU可以识别的机器码。

  上述翻译过程有两种情况:第一种是解释执行,即将字节码逐个翻译成机器码并执行;第二种是实时编译(JIT),它在执行方法之前将方法中的所有字节码翻译成机器码。

  前者的优点是不必等待编译,后者的优点是实际运行速度更快。为了实现Java虚拟机更快的运行速度,通常采用两种方法,即混合模式,它结合了两者的优点。即时编译技术基于二八定律的理论,即20%的代码占用80%的计算资源。大部分不常用代码被解释执行,少数常用代码被及时编译,达到了一个理性的运行速度。

  当计算资源充足时,字节码的解释和执行被及时编译并同时运行。一旦编译完成,就会执行下一个替代解释,直接运行机器码。一般来说,Java代码的执行效率与虚拟机的配置和运行方式有很大关系。Java虚拟机的优化可以有效提高代码的运行效率。这就是java编译运行模式优势的细节。请多关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: