美文网首页
Java的解释执行是先全部解释完后再执行还是边解释边执行?

Java的解释执行是先全部解释完后再执行还是边解释边执行?

作者: 菁华浮英梦 | 来源:发表于2018-09-01 19:00 被阅读26次

        它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。Java语言是解释型的。如前所述,Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。既然Java语言是解释型的,那它就是边解释边执行咯 补充: 不过,虽然java是解释型的语言,但是在不同的平台环境上的java虚拟机也是会有一次性解释然后执行的情况的!!! 追问: java程序在一个平台上被解释成了二进制目标代码,退出java程序后,再运行java程序时,还需要再次解释吗?如果需要再次解释,就显得浪费资源;不再次解释,程序就不能“一次编写,到处运行”。 回答: 就hotspot虚拟机而言,有两种模式,一是-client,二是-server -client模式下,是逐条解释执行的 -server模式下,先解释执行,然后jvm统计执行热点,将这些热点代码仔细优化编译成本地代码,然后执行本地代码,当这个热点不再是热点的时候,释放编译的代码,重新解释执行 其它的jvm可能在一启动的时候就全部编译成本地代码 总之,JVM会自行优化!

就hotspot虚拟机而言,有两种模式,一是-client,二是-server

        -client模式下,是逐条解释执行的

        -server模式下,先解释执行,然后jvm统计执行热点,将这些热点代码仔细优化编译成本地代码,然后执行本地代码,当这个热点不再是热点的时候,释放编译的代码,重新解释执行。

其它的jvm可能在一启动的时候就全部编译成本地代码

诸如此类,没有强制规定,jvm实现者想怎么做都可以,只要不改变java相关的语义

Java 字节码执行有两种方式:

        (1). 即时编译方式:解释器先将字节码编译成机器码,然后执行该机器码。

        (2). 解释执行方式:解释器通过每次解释并执行一小段代码来完成java字节码程序所有的操作。

通常采用第二种方法。

JVM会自行优化!

相关文章

  • Java的解释执行是先全部解释完后再执行还是边解释边执行?

    它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而...

  • 编译原理总体介绍

    程序执行的方式 先编译后执行 边解释边执行 编译过程 识别单词(拼写正确 语法检查(顺序格式 语义理解(合理 组织...

  • Java解释执行与编译执行

    问题 Java语言是解释执行还是编译执行 答案 Java是解释执行和编译执行共同存在的 过程 Java源代码文件首...

  • JVM专题

    1.JVM内存区域 1.1jvm的执行方式 解释执行与编译执行相结合解释执行就是边翻译为机器码边执行。即时编译(编...

  • 20200629公司内部职级认定评审总结

    答案描述(没有回答好) Java解释执行执行的是.class文件,不是.java源码文件。 java解释执行比编译...

  • javaScript 代码解释执行过程

    javaScript 是由浏览器解释执行的脚本语言,不需要先编译后执行,而是通过浏览器 js 解释器进行解释执行执...

  • 语言

    机器语言 汇编语言 高级语言解释型语言(边解释边执行)优点:跨平台性好缺点:执行速度慢编译型语言(一次性全部编译成...

  • 浅析 JIT 即时编译技术

    即时编译回顾 HotSpot 虚拟机执行 Java 程序时,先通过解释器对代码解释执行,发现某个方法或代码块执行比...

  • Java Hotspot虚拟机的模板解释器

    众所周知,Java字节码是解释执行的,本文简要分析解释执行的原理。 解释器 Java 8的Hotspot虚拟机有两...

  • 浅谈Java JIT编译器概念

    一、解释器 Java程序在运行的时候,主要就是执行字节码指令,一般这些指令会按照顺序解释执行,这种就是解释执行。 ...

网友评论

      本文标题:Java的解释执行是先全部解释完后再执行还是边解释边执行?

      本文链接:https://www.haomeiwen.com/subject/ekbuwftx.html