编译执行和解释执行有什么区别_never疯的博客-程序员信息网_编译执行和解释执行的区别

技术标签: JAVA  

什么是脚本:脚本是嵌入式代码,无需编译器就可以在环境中运行,起到解释作用

动态程序一般有两种方式:

1、二进制方式是将我们编写的程序进行编译,编程机器可以识别的指令代码,然后再执行,这种已编译好的程序让我们只能执行,使用,却看不他的程序内容

2、脚本方式是一条条命令,在执行时,是由系统的解释器,将其一条条翻译成机器可识别的指令,例如shell脚本是由shell程序执行的,js是由浏览器解释执行的

下面解释一下解释执行和编译执行有什么区别:

1、编译执行是利用事先编写好的成为编写程序的机器语言程序,作为系统软件存放在计算机内,当高级语言源程序进入计算机,被这个翻译成目标程序,以完成源码要处理的运算并取得结果

2、解释方式是源程序进入计算机内,解释程序边扫描边解释,逐句输入逐句翻译,计算机一步一步执行,并不产生目标程序

机器码和字节码

1、机器码是CPU直接读取运行的机器指令,运行速度非常快,但是晦涩难懂,一般接触不到

2、字节码是一种中间状态的二进制代码,需要直译器转译后才可能成功的成为机器码
针对优缺点,可以从以下几个方面分析。

针对优缺点,可以从以下几个方面分析。

从启动效率来看,解释执行不需要进行编译操作,而编译执行,要经过编译过程。解释执行启动速度更快。

从运行效率来看,因为编译执行只需要编译一次,以后再运行就无需编译,而解释执行每次都要经过解释过程,所以编译执行效率更高。

从内存使用方面来看,编译执行需要生成编译后的机器码文件,而解释执行时逐句解释执行,所以解释执行对内存占用更少。

从跨平台的角度来看,因为解释执行每次可以根据不同的平台进行解释,例如js在linux和windows都可以运行,而C语言在windows下编译后的文件,只能在windows下才行执行。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_40574571/article/details/90598179

智能推荐

VS下开发的QT程序的打包_带你去网吧里偷耳机的博客-程序员信息网

step 1在windows文件夹里搜索windeployqt.exe 这个是安装qt时(msvc版)自动安装的。搜到之后在相应目录输入cmd进入命令行step 2然后找到qt项目中的可执行文件,一般在Debug目录下然后在打开的命令行下输入以下命令:但提示无法找到,猜测可能是路径太长,把zkinspector_my.exe拷贝到桌面,执行同样的操作把路径...

android uri跳转,Android Scheme的跳转协议,跳转到app的指定页面_河星星的博客-程序员信息网

Scheme协议Android中的Scheme是一种页面内跳转协议,通过自定义Scheme协议,可以跳转到app中的任何页面服务器可以定制化跳转app页面app可以通过Scheme跳转到另一个app页面可以通过h5页面跳转app原生页面定义协议的格式Uri.parse("cheu://tests:92/goods?goodsId=8897&name=fuck");chen代表Scheme协...

ajax请求五个步骤!_Kaizd的博客-程序员信息网_ajax请求的五个步骤

ajax请求五个步骤!今天 咱们讲一讲Ajax请求五个步骤!1.创建XMLHttpRequest异步对象var xhr;if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xhr=new XMLHttpRequest(); }else {// code for IE6, IE5 xhr=new ActiveXObject("Microsoft.XMLHTTP"); }2

项目开发中的一些注意事项以及技巧总结_weixin_34138056的博客-程序员信息网

1、jquery采用ajax向后端请求时,MVC框架并不能返回View的数据,也就是一般我们使用View()、PartialView()等,只能返回json以及content等,但是一般我们在开发的时候也是使用json返回的,此时如果需要渲染界面或者是加载局部视图,我们可以在ajax的success的事件中使用$.html()来渲染后台给前端传的View()数据。一开始我遇到这个问题的时候还很纳闷...

关于axios发起post请求后端报400错误_随风而来001的博客-程序员信息网_axios报错400

关于axios发起post请求后端报400错误这是前端错误​ 这个问题困扰我很久,在网上查找解决的方法要么说利用qs 要么说利用URLSearchParams 传递参数 等等方法 我都试过了 但是还是解决不了 ,我用postman请求后端是可以的 但是用axios就不行。​ 最后我的解决问题方法是将前面的params 更改成data进来断点了,数据都正常重点在使用axios时,注意到配置选项中包含params和data两者,以为他们是相同的,实则不然。因为params是添加到

JVM--一文读懂垃圾回收_weixin_30564901的博客-程序员信息网

转:https://www.cnblogs.com/kubidemanong/p/9461755.html与其他语言相比,例如c/c++,我们都知道,java虚拟机对于程序中产生的垃圾,虚拟机是会自动帮我们进行清除管理的,而像c/c++这些语言平台则需要程序员自己手动对内存进行释放。虽然这种自动帮我们回收垃圾的策略少了一定的灵活性,但却让代码编写者省去了很多工作,同时也提高了很多安全性。(因为...

随便推点

win10 远程桌面卡顿_win10系统使用远程桌面卡顿的解决教程_weixin_39695672的博客-程序员信息网

有关win10系统使用远程桌面卡顿的操作方法想必大家有所耳闻。但是能够对win10系统使用远程桌面卡顿进行实际操作的人却不多。其实解决win10系统使用远程桌面卡顿的问题也不是难事,小编这里提示两点:1)同时按下win10系统电脑键盘上的win+R快捷键打开电脑的运行窗口,在窗口中输入netsh interface tcp set global autotuninglevel=disabled命令...

20220705开发板BL602的SDK编译以及刷机_南棱笑笑生的博客-程序员信息网

20220705开发板BL602的SDK编译以及刷机2022/7/5 15:241、下载BL602的SDKhttps://bouffalolab.github.io/bl_iot_sdk/get-started/Developer_Environment_BL602/get_started_hw_windows/get_started_hw_windows.htmlBL602的快速入门下载代码,使用 git clone [email protected]:bouffalolab/bl_iot_sdk.g

通过DBLINK查询出现的问题_czw333的博客-程序员信息网

select t1.rolename from (select * from [email protected]) t1, (select * from [email protected]) t2 where t1.rolename = t2.username(+) and t2.username is null;  select t1.rol...

SQL 日期型函数_zoohouse的博客-程序员信息网

<br />1 SQL Server 有两种日期类型:DATETIME 和 SMALLDATETIME,<br />    <br />    DATETIME 的日期范围:1753-1-1到9999-12-31之间的日期值,精度为3.33毫秒,其类型的值在SQLServer内部用两个 4 字节的整数存储。<br />      第一个 4 字节存储“基础日期”(即 1900 年 1 月 1 日)之前或之后的天数。基础日期是系统参照日期。<br />            另外一个 4 字节存储天的时间(以

设计模式 - 模版方法_我爱看明朝的博客-程序员信息网

设计模式 - 模版方法场景小张的团队最近接受一个需求,实现实现一家咖啡店的冲泡咖啡和茶的冲泡自动化。之前这家咖啡店都是由咖啡师傅手动进行调制咖啡和茶。现在咖啡店需要引入自动化的点单和调制饮料的系统,小张负责实现调制饮料的功能。咖啡师傅手工冲泡咖啡和茶的流程:冲泡咖啡:把水煮沸用沸水冲泡咖啡把咖啡倒入杯子加糖和牛奶冲泡茶:把水煮沸用沸水冲泡茶叶把茶倒入...

vue全面介绍--全家桶、项目实例_weixin_30576827的博客-程序员信息网

简介“简单却不失优雅,小巧而不乏大匠”。2016年最火的前端框架当属Vue.js了,很多使用过vue的程序员这样评价它,“vue.js兼具angular.js和react.js的优点,并剔除了它们的缺点”。授予了这么高的评价的vue.js,也是开源世界华人的骄傲,因为它的作者是位中国人–尤雨溪(Evan You)。Vue.js 是一个JavaScriptMVVM库,是一套构建用户界面的渐进...

推荐文章

热门文章

相关标签