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

 我来答
似灵杉0Ey
推荐于2016-09-26 · TA获得超过313个赞
知道小有建树答主
回答量:341
采纳率:55%
帮助的人:146万
展开全部
编译器(在windows下,javac.exe)将源代码(java文件)编译为字节码(bytecode),存放在class文件中。

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

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

2. 在打开了JIT参数的前提下,jvm会把执行过程中发现的热点位置,由jvm内部的即时编译器编译为本地机器码直接执行。
编译器将java文件编译为class文件,解释器将class文件变为机器语言
一蓑烟雨任平生hope
推荐于2016-07-16
知道答主
回答量:16
采纳率:0%
帮助的人:0
展开全部
Java的编译方式有两种,一种是和C++等语言一样的,把源代码编译成和本地机器平台相关的机器语言,叫即时编译。另一种是编译成一种中间的,与机器平台无关的,这种也是常用的,叫解释型的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沫神钢虚1F
2017-01-12 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.6万
采纳率:59%
帮助的人:1143万
展开全部
你好!编译器(在windows下,javac.exe)将源代码(java文件)编译为字节码(bytecode),存放在class文件中。

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

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

2. 在打开了JIT参数的前提下,jvm会把执行过程中发现的热点位置,由jvm内部的即时编译器编译为本地机器码直接执行。
编译器将java文件编译为class文件,解释器将class文件变为机器语言
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
johnwanz
2015-06-30 · TA获得超过781个赞
知道小有建树答主
回答量:716
采纳率:80%
帮助的人:235万
展开全部

我没听过即时编译器.


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

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

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


可执行环境有两种,

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

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式