Java和c语言的区别

Python010

Java和c语言的区别,第1张

C语言是经典的面向过程的编程语言,编程入门一般都学C语言以了解编程以及锻炼逻辑思维能力,在一些跟硬件比较紧密的编程中也经常用到。\x0d\x0a\x0d\x0aC++是在C语言的基础上加入了面向对象的概念,成为混合型面向对象语言,功能强大,但难度也大。\x0d\x0a\x0d\x0aJava是在C++的基础上进行改进的,摒弃了一些C++的不足之处,语法跟C++很像,它是运行在Java虚拟机上,所以可以跨平台,一处编译,到处执行。\x0d\x0a\x0d\x0a编程都是易学难精,哪个都好学,哪个又都不好学。都有很好的发展前景,就看是什么方向了。底层的C、桌面应用程序、游戏等等C++、嵌入式,网页,Java。

1Java与C语言各自的优势

C语言是面向过程的语言,执行效率高Java是面向对象的语言,执行效率比C语言低。

C语言最关键的是比Java多了指针,这也说明了Java的健壮性,还有Java的多线程机制使程序可以并行运行,Java程序多用于网络。

C语言的安全性不如Java,C语言没有Java的垃圾回收机制,申请的空间要手动释放。

Java的通用性好,可以跨平台直接移植,只要有安装Java虚拟机(JVM)就可以了。

2Java和C语言谁的通用性会比较好

在速度上,C语言编写的程序要优于Java,因为Java必须运行在虚拟机的环境中,但是因为虚拟机,Java获得的平台无关性,而C语言的程序有可能需要重新修改编译才能实现平台的移植,

另一方面,C语言比Java语言更“底层”,因此可以用C编写例如硬件的驱动,而Java却不行。Java和C语言还有个明显的不同就是C语言注重的是算法,但是Java却不一样,想用的时候导包就可以了。

C语言的算法很重要,但是Java中的算法没有C语言那么复杂。打印的方法:C语言是printf("??.")而Java是System.out.print("??."),也可以用println,ln表示换行。

Java程序中的基本数据类型(boolean,char,byte,short,int,long,float,double),是对对象的引用C语言也有许多种基本类型,还有struct,union,enum,数组和指针。

在Java没有枚举、联合类型。Java采用Unicode字符集,C语言通常采用的是ASCII字符集,A—65,a—97。C语言的变量可以不进行初始化,但Java的变量要进行初始化。

在C语言中,char类型占一个字节,在Java中char类型占2个字节。

3Java和C语言各自的特征

Java面向对象的特征主要有封装,继承,多态。类的继承关系是单一的、非多重的,一个子类只有一个父类,子类的父类又只有一个父类。C语言支持“运算符的重载”,这是它的一个很重要的多态特征,是数据抽象和泛型编程的利器。它允许直接对对象进行四则运算,正像基本数据类型那样Java不支持这种多态机制,也是为降低复杂性。

Java可以支持方法重载和重写,所谓重载就是一个类具备多个相同属性行为重写就是在继承关系中父类的行为在不同的子类上有不同的实现。在Java中比C语言多了一些修饰符,如访问修饰符Public(公共的)、Private(私有的)、Protected(受保护的)、默认。

Java有super关键字,指代父类对象,通常被用于调用父类的构造方法或一般方法C语言则没有super关键字,两者都有this,指代当前对象。

在Java中,除了static、final、private是静态绑定以外,所有方法一律按动态绑定处理。Java中可以将类组织起来用Package打包,而C语言没有。

关于JAVA语言与C语言,两大主流程序开发语言,核心区别还是很大的,主要体现在以下几个方面:

一个面向过程编程,一个面向对象编程。

就比如,你玩C语言,就相当于,你为你对象做一件事,非得把整件事来龙去脉给她来一遍,才能博得伊人欢笑。

而java面向对象编程,汇报对象却是你的老板,不要扯中间过程,你咋玩儿,花了多久,解决了多少BUG才做成这事,就问你结果,你这厮结果怎么样,达不达标。

C语言适合去操作硬件,Java适合去操作软件。

这里可以先用一个形象的比喻来说明。

一个老板创业了,他创造了属于自己的公司。公司成立之初就他一个人,所以老板自己得担负起技术研发、财务管理、市场营销等等,就是啥事儿都要老板自己干,遇到啥问题都要自己想办法解决,老板真是有操不完的心啊!

相反,一个员工入职了一家超大型公司。这家公司已经创立很长时间了,在技术上、市场上、财务上等都已经建立了一套非常成熟的标准,包括公司的各方面的管理也都建立起了非常成熟的规章制度。对于这个员工而言,他进去后不需要操心乱七八糟的事儿,遇到问题了直接按照公司的相关标准流程来解决。至于公司这些流程标准是怎么实现的,这个员工根本无需关心,只需要拿来就用。

C语言与Java的区别就是这个老板跟这个员工的区别。

C语言就像这个老板,使用C语言编程时遇到什么问题、遇到什么细节都要程序员自己去考虑怎么解决,因为没有现成的解决方案或者很少有现成的解决方案。

Java就像这个员工,遇到啥问题或者遇到啥细节问题,没关系,肯定有前人已经解决这个问题,而且会有大量的相似的解决方案,Java程序员直接拿来就能用,或者拿来修修补补就能用。

而且,编程时越是接近计算机的底层硬件,编程需要考虑的细节就越多。C语言就是接近计算机底层的硬件的编程语言,所以用C语言编程时细节真是考虑的很多。

总之,个人觉得JAVA要更简单一点,但是C更接近底层,所以一般的开发JAVA就可以了,如果需要系统级开发的话,还是C好一点。