Java与C++程序在编译和运行上的区别
2016-07-26 10:25
309 查看
Java、C++都属于高级语言,而计算机能认识执行的只是机器码(即二进制),所以高级语言都必须经过直接或间接的转换成汇编以后,才能运行:
对于C/C++这类高级计算机语言,它们的编译器(例如Unix下的CC命令、Windows下的CL命令)都是可以把源码直接编译成计算机可以认识的机器码,如exe、dll之类的文件,然后直接运行
而Java语言的跨平台性是它最大的特点之一,这就达成了Java程序平台无头性,因此也有一定的牺牲就是多了一个中间过程,先将Java源程序编译成class文件【字节码形式】存储,然后由JVM(Java虚拟机--屏蔽了操作系统层面,直接自己提供虚拟的硬件)加载,然后在执行时再把字节码解释成具体平台上的机器指令
两者各有优缺点,因此通常我们说C/C++语言效率较高,而Java语言平台无关性
对于C/C++这类高级计算机语言,它们的编译器(例如Unix下的CC命令、Windows下的CL命令)都是可以把源码直接编译成计算机可以认识的机器码,如exe、dll之类的文件,然后直接运行
而Java语言的跨平台性是它最大的特点之一,这就达成了Java程序平台无头性,因此也有一定的牺牲就是多了一个中间过程,先将Java源程序编译成class文件【字节码形式】存储,然后由JVM(Java虚拟机--屏蔽了操作系统层面,直接自己提供虚拟的硬件)加载,然后在执行时再把字节码解释成具体平台上的机器指令
两者各有优缺点,因此通常我们说C/C++语言效率较高,而Java语言平台无关性
相关文章推荐
- LeetCode-难题集之House_Robber系列
- C++中的基础问题——virtual destructor问题,new与malloc区别
- 结构体中动态内存的管理(malloc和free)
- Windows API函数SetWindowLong简析
- 自动取款机ATM取款系统 课题项目
- 内联函数
- C语言关系运算符实例详解
- POJ3045 牛的杂技(重庆一中高2018级信息学竞赛测验4) 解题报告
- Cpp环境【GRYZ2015】【Vijos3150】 足球联赛
- C++ Vector 用法
- 复合数据类型
- 练习题 旅行(重庆一中高2018级信息学竞赛测验4) 解题报告
- C语言中变量的存储类别及其存储方式
- VC++的Unicode编程(宏UNICODE与_UNICODE)
- 5-28 搜索树判断
- C++中insert iterator/iostream iterator的使用方法(详细)
- Cpp环境【POJ3045】【Vijos2982】Cow Acrobats 牛的杂技套路
- 关于C++ string和c类型字符数组的对比
- C++中的srand(time(null))利用时间设置随机种子产生随机数
- NYOJ 102 次方求模(快速求幂)