都说Java是一门解释性 语言,而c/c++是编译性语言。刚开始说的我一愣一愣的,后来经过一番与同学的探讨明白了一些,如果有不足之处,还请诸位提出。

改正:

得到好几位同学的批评指导,我很是感谢。这篇博文是我早再17年刚接触java时候写的,当时是和实验室一位小伙伴无聊中瞎逼讨论,想着java和c的运行速度做个对比,所以写了一些东西;没想到获得好几位网友对我的留言指导,很是感谢;

java确实是编译型语言,但也有解释部分,通过JVM保证数据的一致性,也确保Java的平台无关性;java中有JIT编译器,将我们编写好的源码编译成字节码,然后再装载到JRE,JRE再对字节码进行解析。

具体可以参考java程序编译和运行

 

 

#include<stdio.h>
int main() {
     printf("Hello World!");
}

一下是oj平台测试结果,可以看到c语言编译执行的速度,平均用时大概在2s吧,而且内存消耗也比较小

 

 

 

 

public class Main {
     public static void main(String[] args) {
              System.out.prinln("Hello World!");
}
}

一下是java程序运行结果,可以清除的看到耗时明显是c运行耗时的倍数关系,内存消耗也很多。

 

 

综合分析:java是解释性语言,它需要将源代码转换成.class字节码,然后再有JVM(Java虚拟机)在执行,此时启动JVM耗时大概需要80s+运行HelloWorld.java代码40s.这个代码运行大搞耗时120s左右。c语言在运行过程中需要编译、链接、运行,生成.exe文件可以直接在cpu运行不需要经过任何系统翻译。【未完待续】

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐