• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

java的编译运行方式有什么好处

java 搞代码 4年前 (2022-01-09) 7次浏览 已收录 0个评论

Java的代码编译运行本文来源gao@!dai!ma.com搞$$代^@码5网@在JVM中,那么这种运行方式有什么好处呢?

不同于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的编译运行方式有什么好处的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:java的编译运行方式有什么好处

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址