请选择 进入手机版 | 继续访问电脑版

5联网论坛

 找回密码
 立即注册
查看: 40|回复: 1

java与C语言有什么不同之处呢

[复制链接]

42

主题

42

帖子

174

积分

注册会员

Rank: 2

积分
174
发表于 2017-8-15 17:09:44 | 显示全部楼层 |阅读模式
  java与C语言是现代最流行的两大开发语言,java与C语言有什么不同之处呢?java真的是C语言的子语言吗?下面就来看看java与C语言的区别。

  java从根本上说是c之后的一种改进语言,纯面向对象的一种编程语言(当然比起Ruby还是差一点),有了C语言的基础固然对学习java有帮助,因为在某种程度上java语言和C语言是比较接近的。但是如果没有学习过C语言也完全没有问题,这两者并不存在依赖关系,直接学习java语言是完全可以的。

  java与C语言的区别

  1. Java没有预处理指令。(如C中的#define , #include , #ifdef等)。C中的常量定义在Java中用static final来取代。

  2. Java中没有C中的全局变量。

  3. Java中的主类型的size是确定的,而C中主类型的size跟平台相关。

  4. Java中没有了指针,它使用了类似的句柄来取代指针,但是Java中不允许对句柄进行加减,没有取地址操作符之类的东东。

  5. Java有垃圾收集机制,不需要自己释放空间。

  6. Java没有goto语句。Java在C提供的控制语句基础上增加了异常处理和标签break和continue语句。这些可以替代goto的作用。

  7. C要求一个方法或块中使用的所有局部变量的定义在该方法或块的最开始处定义,而Java允许这些定义在方法或块的任意地方出现。

  8. Java不要求在调用一个函数以前已经定义了该函数,可以在调用点后面定义。而C有这个要求。

  9. Java不支持C中的strut 和 union类型。Java支持方法重载。

  10. Java不支持C中的enum关键字。

  11. Java不支持C中的bitfields能力。

  12. Java不支持C的typedef。

  13. Java不支持C的方法指针。

  14. Java不支持C的可变参数表。

  Java与C语言各自的优势

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

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

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

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

  Java和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字符集,A65,a97。C语言的变量可以不进行初始化,但Java的变量要进行初始化。

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

  Java和C语言各自的特征

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

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

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

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

      西安java培训                西安软件测试培训                    西安java培训学校



回复

使用道具 举报

0

主题

503

帖子

1141

积分

金牌会员

Rank: 6Rank: 6

积分
1141
发表于 2017-10-15 17:47:27 | 显示全部楼层
活动结束的思维
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|5联网 ( 沪ICP备12005849号

GMT+8, 2017-11-23 00:46 , Processed in 0.279633 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表