C语言与JAVA的区别是什么(推荐)

 更新时间:2017年04月04日 11:38:26   投稿:mrr  
本文是小编给大家收集整理的关于C语言与Java的区别介绍,非常不错,具有参考借鉴价值,需要的朋友参考下吧

首先来说说他们各自的历史:C语言的发展历史

C语言的发展颇为有趣。它的原型ALGOL 60语言。(也成为A语言)

1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。

1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。

1970年,贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。

而在1973年,B语言也给人“煮”了一下,贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。

为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。

1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。

1988年,随着微型计算机的日益普及, 出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准 3.C语言的主要特点 。C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。

在来说说Java

Java是一个由Sun公司开发而成的新一代编程语言。使用它可在各式各样不同种机器、不同种操作平台的网络环境中开发软件。不论你使用的是哪一种WWW浏览器,哪一种计算机,哪一种操作系统,只要WWW浏览器上面注明了“支持Java”,你就可以看到生动的主页。Java正在逐步成为Internet应用的主要开发语言。它彻底改变了应用软件的开发模式,带来了自PC机以来又一次技术,为迅速发展的信息世界增添了新的活力。

Sun的Java语言开发小组成立于1991年,其目的是开拓消费类电子产品市场,例如,交互式电视、烤面包箱等。Sun内部人员把这个项目称为Green,那时WorldWideWeb还在图纸上呢。该小组的是JamesGosling,是一位非常杰出的程序员。他出生于1957年,于1984年加盟SunMicrosystem公司,之前在一家IBM研究机构工作。他是SunNeWs窗口系统的总设计师。也是第一个用C实现的EMACS的文本编辑器COSMACS的开发者。

在研究开发过程中,Gosling深刻体会到消费类电子产品和工作站产品在开发哲学上的差异:消费类电子产品要求可靠性高、费用低、标准化、使用简单,用户并不关心CPU的型号,也不欣赏专用昂贵的RISC处理器,他们需要建立在一个标准基础之上,具有一系列可选的方案,从8086到80586都可以选取。

C语言和JAVA其实是很相识的,最直接的区别就在与,一个是全面向过程,一个是面向对象。而且JAVA是可以跨平台的。而C语言不能,但能够直接操作硬件,并且生成机器码的效率高。C语言多了一个,指针也是C语言的精髓,想要学好C语言,指针就必须学好。JAVA是没有指针的。

总的来说,C语言是基础语言,JAVA是面向对象的一门语言,在学习JAVA语言前,我觉得还是最好先学习C语言,因为C语言的语法比较简单,只是他的亮点指针很容易出错,想要好好的运用指针是件很难的事,当然,用好了,对你的程序是有很好的帮助,反之,就会让你的程序崩溃掉。JAVA更实用于开发东西了,比较实用,因为JAVA面向对象嘛。和我们的思维很相似,所以开发起来就简单些,而C语言是面向过程,就和我们的思维方式有着差异,开发就很少了。而且很难。但因为C语言能够直接操作硬件,所以在一些嵌入式系统中,C语言是使用最广泛的语言。

在语法中

JAVA是从可以算是从C++发展而来的,因此Java与C语言的语法比较类似的。

在语法的程序库中

言有着自己的标准库,JAVA却有着自己得类库。

在内存的管理中

C语言在使用完一块内存时,要手动把内存释放掉,如果不释放的话,运行久了,程序很容易就会崩溃掉的。由于需要显式的归还内存,因此当一个函数需要将一块内存返回给调用者的时候,问题就比较复杂了。所以我们所以时要注意:(1) 在调用者中先分配好内存,作为参数传入到被调用的函数中(2) 在被调用的函数中分配,使用完后在调用者中释放(3) 在被调用函数中使用static变量,可以将该变量返回。

而JAVA基本不用考虑内存的问题,如果想用一个对象,new一个就可以,这个过程的背后则是JRE为对象分类的一定内存,当JRE发现你不再使用这个对象的时候,他就会自动回收内存,也就是说你只管借东西,不用管归还,因为与有人当你的跟班,在你不使用的时候就把东西归还了,不过这个过程还是有的,只不过是JRE作的而已。

语法中使用的基本类型

C语言有着很多的基本类型如:(boolean, char, byte, short, int, long, float, double,struct, union, enum)还有数组,指针等等。

在JAVA中:只有(boolean, char, byte, short, int, long, float, double)这8种基本类型和引用的。

在继承中

两种语言都支持方法重载的

C语言是多线继承,比如:小轿车和货车都继承了汽车类,奥迪2000是继承小轿车的,东风大卡车是继承货车,这样奥迪2000也可以继承货车,东风大卡车也可以继承小轿车。

JAVA是单继承的,比如:小轿车和货车都继承了汽车类,奥迪2000是继承小轿车的,东风大卡车是继承货车,这样奥迪2000就不能继承货车,当然东风大卡车也不能继承小轿车。

动态、静态绑定

在C语言中,为了允许运行时动态决定哪个函数被调用,一个函数必须用virtual修饰。virtual关键字被自动继承,用以支持多态;凡是没有用virtual修饰的成员函数(包括static)都是静态绑定的,即在编译时决定调用哪个版本

而在Java中,除了static、final、private是静态绑定以外,所有方法一律按动态绑定处理

初始值

在C语言中,是可以不初始化使用的

而在JAVA中,是必须初始化值的

抽象方法或抽象类

C语言的对等语法是“纯虚函数”和“抽象类”

Java使用abstract关键字修饰抽象方法或抽象类,final类不能被继承

都使用抽象类作为继承层次中的基类,提供一般概念,由子类实现其抽象方法,且抽象类都不能被直接实例化为对象

super

JAVA super关键字,指代父类对象,通常被用于调用父类的构造方法或一般方法
C语言没有super关键字

this

两者都有,都是只当前的对象

package

C语言没有

Java有package的概念,可以将类组织起来,便于打包和部署,也有利于类的安全。

在语法中还有很多的差异,就不一一列出来了,可以看出,JAVA比C语言要精简很多,在生活上的实用性也很强,C语言却是哎操作内存上比较强。也就是说JAVA比较适合在上层工作,只要我们懂得接口就好,而C语言却是在网络下层工作的,要对协议比较了解。总之,各有各的好处,各有各的领域。

以上所述是小编给大家介绍的C语言与JAVA的区别是什么的相关知识,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

相关文章

  • C语言用函数实现反弹球消砖块

    C语言用函数实现反弹球消砖块

    这篇文章主要为大家详细介绍了C语言用函数实现反弹球消砖块,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • 一篇文章带你入门C语言:操作符

    一篇文章带你入门C语言:操作符

    这篇文章主要介绍了C语言中的运算符,文中讲解非常详细,适合初学小白进行学习,想入门C语言的朋友不妨了解下,希望能给你带来帮助
    2021-08-08
  • 浅谈C++11的std::function源码解析

    浅谈C++11的std::function源码解析

    类模版std::function是一种通用的多态函数包装器std::function的实例可以对任何可以调用的目标实体进行存储、复制、和调用操作,本文详细的介绍一下,感兴趣的可以了解一下
    2021-06-06
  • c++基础语法:普通继承

    c++基础语法:普通继承

    基类成员的private成员不但对于对象是不可见的,对于派生类也是不可见的,只能被基类成员或者友元访问
    2013-09-09
  • C语言中数据在内存如何存储

    C语言中数据在内存如何存储

    本文详细讲解了C语言中数据在内存如何存储,文中通过示例代码介绍的非常详细。对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • VC6实现激活后台窗口最佳方法

    VC6实现激活后台窗口最佳方法

    这篇文章主要介绍了VC6实现激活后台窗口最佳方法,实例分析了VC操作后台窗口的技巧,需要的朋友可以参考下
    2015-06-06
  • C语言实现面向对象的方法详解

    C语言实现面向对象的方法详解

    这篇文章主要为大家详细介绍了C语言实现面向对象的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-08-08
  • C/C++: Inline function, calloc 对比 malloc

    C/C++: Inline function, calloc 对比 malloc

    以下是对c/c++中的malloc函数与calloc函数的区别以及它们之间的联系进行了介绍,需要的朋友可以过来参考下
    2016-07-07
  • C语言实现括号匹配的方法

    C语言实现括号匹配的方法

    这篇文章主要介绍了C语言实现括号匹配的方法,文中代码简单易懂,方便大家更好的学习,感兴趣的朋友可以参考下
    2020-06-06
  • 浅析C语言中printf(),sprintf(),scanf(),sscanf()的用法和区别

    浅析C语言中printf(),sprintf(),scanf(),sscanf()的用法和区别

    以下是对C语言中printf(),sprintf(),scanf(),sscanf()的用法以及区别进行了详细的分析介绍,需要的朋友可以参考下
    2013-07-07

最新评论