后缀为exe的文件本身是机器码吗?C++编译过的程序是机器码么。但是java好像也能做出exe程序。
展开全部
exe文件是机器码
只要遵循exe文件格式进行编译链接就可以制作exe,并非某一编译器特有
c++直接编译成二进制机器码,可以在机器上直接运行,而java先将代码编译成字节码,再依靠java虚拟机模拟cpu运行程序,性能上有损失
解释型编译器并不直接产生二进制机器码,而是中间码 需要特定的软件先解释成二进制码才可运行
如脚本,这种方法灵活性强,修改代码无需重新编译,但性能会损失,
编译型则直接产生二进制代码,无需软件支持,靠硬件即可运行,这种方法速度快,但灵活性不足,每次修改都需要重新编译。
java属于混合型,产生的不是中间码 而是字节码 java虚拟机不解释成机器码 而是模拟cpu运行,所有java称虚拟机,而不是解释器
只要遵循exe文件格式进行编译链接就可以制作exe,并非某一编译器特有
c++直接编译成二进制机器码,可以在机器上直接运行,而java先将代码编译成字节码,再依靠java虚拟机模拟cpu运行程序,性能上有损失
解释型编译器并不直接产生二进制机器码,而是中间码 需要特定的软件先解释成二进制码才可运行
如脚本,这种方法灵活性强,修改代码无需重新编译,但性能会损失,
编译型则直接产生二进制代码,无需软件支持,靠硬件即可运行,这种方法速度快,但灵活性不足,每次修改都需要重新编译。
java属于混合型,产生的不是中间码 而是字节码 java虚拟机不解释成机器码 而是模拟cpu运行,所有java称虚拟机,而不是解释器
更多追问追答
追问
我一直以为jvm就是解释器。领教了,我问这个问题主要的原因是想弄清楚一个问题希望大神给个解释:就是高级语言与底层语言性能上的差距主要是什么造成的?是语言本身就慢,还是编译时间造成的效率低下。例如同样跑一百米。A是站在0米跑,B站在30米跑,所以B最先跑到。A就相当于高级语言,B相当于底层的语言,A需要先编译成B然后在编译成目标代码。可以这样理解吗?
追答
高级语言由低级语言写成,所以必然会有重复的地方,例如函数有安全性检测,如果用低级代码写,如汇编,可能只需要判断一次,但是高级语言的函数每个判断一次就会重复很多次,所以编译完的代码就长了许多,运行的时间也就长了。
至于你的例子说的应该是解释型语言与编译型语言的区别,并非高级语言与低级语言
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询