大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍了java的编译运行方式是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
成都创新互联公司成立与2013年,先为龙文等服务建站,龙文等地企业,进行企业商务咨询服务。为龙文企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
不同于C/C++语言编译后可以直接生成CPU所能理解的代码格式,俗称机器码,Java则将代码编译成虚拟机可执行的字节码。Java虚拟机可以由硬件实现,也可以根据不同平台(Windows,Linux,Mac等)由软件来实现。这么做的好处在于,一旦Java代码被编译成字节码,它变可以在不同的虚拟机平台上运行,这就是我们经常说的“一次编译,到处运行”。除此之外,虚拟机还提供了诸如托管环境、数组越界、动态类型、安全权限等动态检测,使我们能够更加关注业务逻辑的开发。
Java虚拟机
从虚拟机的角度来看,执行Java代码首先需要将它编译而成的class文件加载到Java虚拟机中。加载后的Java类会被存放于方法区中。Java虚拟机将运行时内存区域划分为五个部分,分别为方法区、堆、PC寄存器、Java方法栈和本地方法栈。
Java运行过程
在运行过程中,每当调用进入一个Java 方法,Java虚拟机会在当前线程的Java方法栈中生成一个栈帧,泳衣保存局部变量及字节码的操作数。这个帧的大小是提前计算好的,而且Java虚拟机不要求栈的内存是连续的。当退出方法时,不管是正常还是异常返回,Java虚拟机都会弹出当前帧并抛弃。从硬件的角度来看,Java字节码无法直接运行,因而Java虚拟器需要将字节码翻译成CPU能够识别的机器码。
上述翻译过程有两种情况:第一种是解释执行,即逐条将字节码翻译成机器码并执行;第二种是即时编译(Just-In-Time compilation, JIT),将一条方法中的所有字节码翻译成机器码后再执行。
前者的优势在于无需等待编译,后者的优势在于实际运行速度更快。Java虚拟机为了实现更快的运行速度,通常两种方式都会采用,即混合模式,综合两者的优点。即时编译技术建立在二八定律的理论基础上的,即百分之二十的代码占用了百分之八十的计算资源。针对大部分的不常用代码采用解释执行,对于少部分常用的代码采用即时编译,已达到理性的运行速度。
在计算资源充足的情况下,字节码的解释执行和即时编译和同时运行。一旦编译完成之后,下次可替换解释执行,直接运行机器代码。总的来说Java代码的执行效率,跟虚拟机的配置和运行方式有很大关系,针对Java虚拟机的优化可以有效的提高代码的运行效率。
感谢你能够认真阅读完这篇文章,希望小编分享java的编译运行方式是什么内容对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,遇到问题就找创新互联,详细的解决方法等着你来学习!