首页 > 其他分享 >编译执行跟解释执行

编译执行跟解释执行

时间:2024-01-26 17:45:20浏览次数:24  
标签:解释 语言 机器码 编译 执行 运行

Java程序是编译执行还是解释执行?

先看看什么是编译型语言和解释型语言。

编译型语言

在程序运行之前,通过编译器将源程序编译成机器码可运行的二进制,以后执行这个程序时,就不用再进行编译了。

优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高,可以脱离语言环境独立运行。

缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。

总结:执行速度快、效率高;依靠编译器、跨平台性差些。

代表语言:C、C++、Pascal、Object-C以及Swift。

解释型语言

定义:解释型语言的源代码不是直接翻译成机器码,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。在运行的时候才将源程序翻译成机器码,翻译一句,然后执行一句,直至结束。

优点:

  1. 有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(如虚拟机)。
  2. 灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。

缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

总结:解释型语言执行速度慢、效率低;依靠解释器、跨平台性好。

代表语言:JavaScript、Python、Erlang、PHP、Perl、Ruby。

对于Java这种语言,它的源代码会先通过javac编译成字节码,再通过jvm将字节码转换成机器码执行,即解释运行 和编译运行配合使用,所以可以称为混合型或者半编译型。

标签:解释,语言,机器码,编译,执行,运行
From: https://www.cnblogs.com/shangeg/p/17989886

相关文章

  • jmeter 用命令执行jmx脚本
    前提:环境变量需要配置 cmd命令模式下,可以输入命令 jmeter-n-tD:\jmeterplan\meter.jmx-lD:\result\meter.jtl-e-oD:\jmeterplan\result ......
  • activiti并行网关执行时每个关联表的变化
    activiti并行网关执行时每个关联表的变化......
  • 使用docker部署编译环境并使用gitlab-ci实现代码自动打包
    使用docker部署编译环境并使用gitlab-ci实现代码自动打包一、需求1、需求描述实现代码git仓库提交能够自动编译出结果①需要一个编译环境能够共享编译:使用docker创建镜像来维护,创建完毕无需频繁修改②使用gitlab的ci进行持续继承,代码提交自动打包,ci中会使用①中的镜像作为运......
  • 一条SQL查询语句是如何执行的?
    1.客户端通过TCP握手,如果账户密码通过后,连接器去权限表获得当前连接权限。默认时间-8小时,长连接。使用长连接的好处可以避免连接的损耗。2.查询缓存5.6版本有查询缓存,但是缓存在update、delete。会导致缓存失效,所以缓存的利用率不高(8.0缓存已删除)3.分析器SQL语句会进行词法......
  • Java 程序编译和运行过程
    Java程序从.java文件创建到程序运行要经过两大过程:.java文件由编译器编译成.class文件字节码由JVM解释运行编译过程.java源文件会被Java编译器进行编译为.class文件:Java编译一个类时,如果这个类所依赖的类还没有被编译,编译器会自动的先编译这个所依赖的类,然后引用......
  • 解释器模式
    定义:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子简单来说:为了解释一种语言而为语言创建的解释器类型:行为型适用场景:某个特定类型问题发生频率足够高优点:语法由很多类表示,容易改变及扩展此“语言”缺点:当语法规则数目太多时,......
  • verilog预编译处理(ieee标准)
    `celldefine`endcelldefine在ieee中的描述如下:这两个指令用于将模块标记为单元模块,它们表示包含模块定义。某些PLI使用单元模块用于这些应用,如计算延迟。该命令可以出现在源代码描述中的任何地方。但是,推荐将其放在模块定义的外部。但是具体还不知道怎么用,没实践过。`def......
  • SQLServer查询历史执行记录的方法实现
    1.使用SQLServerManagementStudio(SSMS)的查询执行记录功能:打开SSMS,连接到要查看执行记录的数据库服务器。在“对象资源管理器”窗格中,右键单击要查看执行记录的数据库,然后选择“报表”>“标准报表”>“执行记录”。在“执行记录”窗口中,选择要查看的时间范围和其他......
  • JAVA调用Python脚本执行
    SpringBoot-web环境<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>springboot--启动类@SpringBootApplication(ex......
  • [转帖]一文搞懂各种数据库SQL执行计划:MySQL、Oracle等
    https://zhuanlan.zhihu.com/p/99331255 14人赞同了该文章MySQL执行计划Oracle执行计划SQLServer执行计划PostgreSQL执行计划执行计划(executionplan,也叫查询计划或者解释计划)是数据库执行SQL语句的具体步骤,例如通过索引还是全表扫描访问表中的数据,连......