【Java】C/C++与Java的简单比较

时间:2023-03-09 22:40:08
【Java】C/C++与Java的简单比较
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5827273.html
C/C++:
           编译(不同的系统编译出不同的机器码,所以同一个C/C++文件不一定可以在某些系统执行,因为编译出的机器码不同)
代码————机器码————在操作系统中由硬盘读取到内存中运行——内存——CPU——输出结果
Java:
           编译          字节码在虚拟机上运行,虚拟机相当于翻译官,不同的系统JVM不同,转换规则不同,把同一个字节码文件转换为相应的系统的机器码
代码————字节码文件(.class)————JVM————机器码在相应系统运行——内存——CPU——结果
由于JVM的存在,只需在不同的系统上安装相应的JVM,同一个.class文件在相应的系统的JVM运行就会输出相应系统能解析的机器码,从而成功运行。
这就是,一次编译,到处运行。
打个比方,就是:
一本汉字写的书(源码),去到不同的国家(系统),每个国家有相应的翻译官(JVM虚拟机)把汉字翻译成其所在国家的文字(比如这本书传到英国被翻译成英文书),之后就可以在这个国家流传开了(相当于程序成功运行)。
另外,补充一点: 
JAVA有两特性:
移植性:一次编译,到处运行(上面已解释)
安全性:自动回收内存中不常用的命令垃圾,防止内存溢出。