半编译半解释的Java语言和C++、Python等语言的区别
1. 引言
我们编写的代码需要按照某些组织制定的规范,对于程序员来说,能够轻松理解;但是对于计算机来说,它们根本无法理解我们编写的代码,只能识别二进制指令。
2. 编译型语言(如C++)和解释型语言(如Python)
编译型语言:源代码直接被编译为可执行文件(二进制指令),在后续直接运行可执行文件,效率较高;
解释型语言:边执行源代码边转换为二进制指令,每一次都需要重新解释执行,效率较低。
3. 可执行文件为什么不能跨平台
首先,这里的平台其实是指操作系统。那么可执行文件为什么不能跨操作系统呢?有些人会回答是由于不同的操作系统具有不同的二进制指令。但其实只有计算机的架构不同(如x86、ARM),才存在指令不同。实际上,不同操作系统的可执行文件有不同的格式,Windows是PE格式,而Linux是ELF格式。
其次,不同的操作系统在文件操作、资源分配、任务调度上存在着不同。
4. 解释型语言为什么能跨平台
源代码在不同的平台上有不同的解释器进行解释、运行,因此解释型语言可以跨平台。注意:虽然解释型语言是边执行边解释,但仍然要整体进行语法、语义检查后再一行一行解释执行。
5. 半编译半解释的Java语言
java源代码先经过编译,得到 .class为后缀的字节码文件,然后该字节码文件可以跨平台。因为不同平台有不同的Java虚拟机(Java Virtual Machine, JVM),JVM可以解析、执行字节码文件。所以有着“一次编译,到处运行”的口号。
半编译半解释的Java语言和C++、Python等语言的区别相关推荐
- r语言和python-Python和R语言的区别_Python与R的区别和联系
Python和R语言的区别_Python与R的区别和联系 可能问这个问题会很无脑,但是我还没有深入接触过Python,只是用过R语言.谁能帮我解答一下,这两者的主要区别呢?是否存在代替关系呢? 精彩解 ...
- java半解释半编译_编译型语言、解释型语言、半编译半解释型语言
计算机不能直接理解任何除机器语言以外的语言,所以必须要把程序员所写的程序语言翻译成机器语言,计算机才能执行程序.将其他语言翻译成机器语言的工具,被称为编译器. 编译器翻译的方式有两种:一种是编译,一种 ...
- java语言和C语言的区别
java语言和C语言的区别 简单的说就是两种不同的语言. 区别如下: 1在运行方式上: C:原始的C是面向过程的.就是按行执行. JAVA:绝对的面向对象.就像按模块执行. (补充:当然,在C++,及 ...
- 论述c语言和java语言的区别,java语言和c语言的区别有哪些
java语言和c语言的区别有单文件的编译时间java比c语言快:c语言可以直接操作内存,java不能直接操作:c语言可以封装动态库,java不行:c语言有指针,java没有指针:c语言可以直接操作串口 ...
- java语言和c语言_java语言和c语言的区别
java语言和c语言的区别 java语言和c语言作为编程的两大语言,它们之间存在什么样的区别呢?下面百分网小编就为大家讲一讲,希望对您有所帮助! C语言是一门通用计算机编程语言,应用广泛.C语言的设计 ...
- c语言 python-C语言、Java语言和python语言的区别在哪里
原标题:C语言.Java语言和python语言的区别在哪里 我们经常听到C语言.Java语言和python语言,那么这三者的区别在哪里呢?随着科技的进步以及新技术的推进,编程语言的种类也是越来越多,随 ...
- python和c语言的区别-C语言、Java语言和python语言的区别在哪里
原标题:C语言.Java语言和python语言的区别在哪里 我们经常听到C语言.Java语言和python语言,那么这三者的区别在哪里呢?随着科技的进步以及新技术的推进,编程语言的种类也是越来越多,随 ...
- java语言和python语言发展前景哪个好?
java语言和python语言发展前景哪个好? [导语]众所周知,java和python都是现下比较受欢迎的编程语言,网上有许多文章都举例论证了Python语言和Java语言之间的比较,但两者各有优势 ...
- C语言和C++语言在语法上面的部分区别
(2011-03-16 17:12:13) 标签: 杂谈 分类:计算机 C语言和C++语言在语法上面的部分区别: 1.C语言的定义必须在最前面,C++可以在任何地方定义,比如 for(int i=0; ...
最新文章
- torch.nn.Embedding()理解
- Android 哥哥福利
- 《怎样解题》-波利亚
- 面具卡米怎么删模块_魔兽8.3咋肥事——面具带几个收益高?对小怪宝箱水晶有加成吗?...
- highlight.js 语法高亮,让你的页面更美观~
- 第三堂:Java程序流程控制
- 7-23 哥尼斯堡的“七桥问题”(25 分)
- JAVA语言isPrime关键词_Java Guava IntMath isPrime()用法及代码示例
- java车牌识别字符分割_车牌识别之字符分割
- 7月22日自助装机配置专家点评
- 《服务外包概论》知识点梳理
- mysql 1556_mysqldump: Got error: 1556: You can't use locks with log tables
- 2020年务必要了解的最好用的14款CI/CD工具
- 你面对以希望为名的绝望微笑(未完成)
- cisco 路由器时间戳service timestamps
- debian 11安装搜狗输入法
- 火车售票系统设计 c语言,C语言火车售票系统
- 1896-2021历届奥运会奖牌动态排序动画(Python数据采集)
- 详解GCC的下载和安装
- EJB学习日记(7)
热门文章
- 【测试】SAP选择屏幕界面配图实现
- 几家OA厂商介绍及产品特点总结
- 深度解读:都是顶薪为什么浓眉远超卡哇伊?
- 如何设置'REUSE_ALV_GRID_DISPLAY'的单个单元格的颜色
- 单面煎鸡蛋,健康有风险
- linux mail 密码错误,linux下mail使用故障解决
- c语言农夫过河游戏代码解释,农夫过河C++代码
- python对话框代码_Python、tkinter、复杂对话框和代码结构
- agv调度matlab程序,AGV调度方法入门
- 关于 ESP,EBP,EIP