C/C++/JAVA三大主力语言对比分析

C,JAVA,C++常年占据编程语言前三位,作为一个有技术追求的软件工程师,对这三种语言熟视无睹,一知半解,是可忍孰不可忍!

大致读了几遍C,一遍C++教程,结合之前对JAVA的一些经验。对这三大霸主进行框架性的分析,方便后续有目的的深入学习。

首先谈一谈它们的发展历史:

C:发源于用来替代汇编语言的B语言,1972年正式更名为C。

C++:1979 首次实现C with class。

JAVA:1990年出现JAVA的雏形,计划应用于家用电器的通信与控制。看好在互联网上的应用前景,1995年正式发布为JAVA。注:世界上最好的语言PHP也是这一年诞生,可以想象当时的互联网有多么火热。

想象自己是一个1972年的C程序员,C 代码写得出神入化,不断重构自己的代码,有一天突然灵光一闪,发现如果引入一个能和现实世界对应的概念,代码逻辑会变得更加清晰明了(尽管之前的代码逻辑已经清晰明了的不行);由此提出了类的概念,C++诞生了。后来家电产品迅猛发展,给家电编程的需求膨胀;原来的C/C++语言主要用于针对电脑硬件的编程,虽然也可以用来在家电芯片上编程,但是需要处理硬件兼容性很麻烦。聪明的你想能不能开发一个程序来处理不同硬件的差异,用一种这个程序能识别的方式来描述要实现的功能。于是你就开发了JVM虚拟机,并且为虚拟机开发制定了语言规范,这个时候因为你已经有之前C with class 的经验,很自然的你的新语言JAVA也with class了。

有它们们的发展历史,我们不难推断出它们的某些特性了:

C 最底层的语言,直接和硬件打交道,可以针对不同平台编码干任何事情,只要硬件提供了相应的硬件接口(机器指令)。C++ 就是C的升级版本而已。C/C++可以看做是同一种语言。

JAVA 很自然具有良好的可移植性,因为它在语言和机器码直接加了一层虚拟机。虚拟机屏蔽了底层的差异性。面相对象特性是自然而然的事情。

理顺这三大巨头的背景关系,我们再来看看语言细节方面:

总体感觉:

C 语言的基本语法很中规中矩,因为我们程序员最早接触的就是它,它的风格给人的感觉是精简精致。

C++ 基本上就是在C的基础加入了对象的表示。给人的感觉确实是加强版的C。

JAVA 给人的感觉就各种牛叉的库。

细节:

C 代码找有大量的编译预处理指令,配套有大量的检测硬件系统特性的工具来辅助编译出能能够运行在目标平台上的二级制码。

JAVA 到处都是类。

数据结构:

C 语言的数据结构比较基础,如果需要复杂的数据结构,需要自己定义。

C++, JAVA处理基础的数据结构外,定义了常用的数据结构:集合,列表,映射表。C++: Containers [deque、list、vector、map ] 迭代器,算法集。JAVA:SET,MAP,HASH。


线程和服务器编程

线程和服务器都要依赖硬件,利用系统的这些功能自然离不开通过C调用系统调用。Java也不例外,java需要借助C去访问系统调用,JVM的开发语言就是C/C++ 看这里

到这里我们有了一个总体的认识啦!






猜你喜欢

转载自blog.csdn.net/qq_17463455/article/details/79993405