java的‘编译器’与‘即时编译器’有什么区别?

如题所述

编译器(在windows下,javac.exe)将源代码(java文件)编译为字节码(bytecode),存放在class文件中。

字节码不能直接在机器上执行,而是通过虚拟机(windows下是java.exe)执行。具体的执行方式有两种:

1. 一般情况下解释执行。解释执行并不是“解释为用c++语言写成的程序”,而是jvm把字节码看成脚本,根据字节码中的指令,由JVM去调用实际的本地方法。

2. 在打开了JIT参数的前提下,jvm会把执行过程中发现的热点位置,由jvm内部的即时编译器编译为本地机器码直接执行。
编译器将java文件编译为class文件,解释器将class文件变为机器语言
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-16
Java的编译方式有两种,一种是和C++等语言一样的,把源代码编译成和本地机器平台相关的机器语言,叫即时编译。另一种是编译成一种中间的,与机器平台无关的,这种也是常用的,叫解释型的本回答被提问者采纳
第2个回答  2017-01-12
你好!编译器(在windows下,javac.exe)将源代码(java文件)编译为字节码(bytecode),存放在class文件中。

字节码不能直接在机器上执行,而是通过虚拟机(windows下是java.exe)执行。具体的执行方式有两种:

1. 一般情况下解释执行。解释执行并不是“解释为用c++语言写成的程序”,而是jvm把字节码看成脚本,根据字节码中的指令,由JVM去调用实际的本地方法。

2. 在打开了JIT参数的前提下,jvm会把执行过程中发现的热点位置,由jvm内部的即时编译器编译为本地机器码直接执行。
编译器将java文件编译为class文件,解释器将class文件变为机器语言
第3个回答  2015-06-30

我没听过即时编译器.


我知道得有, 编译, 直译.

直译: 程序保持源码状态, 执行时, 直接依照源码进行执行.

编译: 编译器将源码编译成"可执行"数据格式, 运行环境则去读取"可执行"数据格式之文档.


可执行环境有两种,

    特定环境的机械语言, 如windows下的com/exe.

    中间语言, 如Java. 他的程序执行环境(JVM)执行在windows上. Java编译後为可执行的中间语言, 程序执行在JVM上. 这是用来跨平台的. 现在Microsoft的.NET也有提供中间语言模式. 这就是某些程序要求先安装Java, 才能执行的原因.

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网