Java与C/C++的区别.docVIP

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java与C/C的区别

Java与C/C++的区别 (OCR by Lindows) 首先应该清楚,Java是由C++发展而来的,它保留了c++的大部分内容,类似于c++, 但句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的 基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷,而产生的一种 新的完全面向对象的语言。 Java和c++的相似之处多于不同之处,但两种语言问几处主要的不同使得Java更容易 学习,并且编程环境更为简单。 因篇幅所限,这里不能完全列出不同之处,仅列出比较显著的区别: 1.指针 Java无指针,并且增添了自动的内存管理功能,从而有效地防 止了c/c++语言中指针操作失误,如指针悬空所造成的系统崩溃。 比w操作返回一对象的引用,类似于c++中的引用;在c++中, new返回一个对象的指针。在Java中无指针,不会遇到下面这样的 语句: Mywork—>Mywork(); 没有指针的程序无法访问不属于它的内存,消除了在c++ 中—些常见的错误,这有利于Java程序的安全。 2.多重继承 c++支持多重继承,这是c++的一个特征,它允许多父类派 生一个类。尽管多重继承功能很强,但使用复杂,而且会引起许多麻 烦,编译程序实现它也很不容易。Java不支持多重继承,但允许一个 类继承多个接口(界面),实现了c++多重继承的功能,又避免了c++的 许多缺陷。 3.数据类型及类 住Java‘fJ,使用了个能和整数湖蝴的布尔类型(bo01ean),它仪有二个值:true或false。 Java是完全面向对象的语言,所有函数和变量部必须是类的一部分。除了基本数据类型(如 控型初浮点型)之外,其余的都作为类对象,包括中和数组。对象将数据(Proper山s)和方法 (meth。d)结合起来,把它们封装在类中,这样每个对象都可实现自己的特点和行为。而c++ 允许将函数和变量定义为全局的。 此外,Java中取消了c/c++中的结构和联合,使编译程序更简捷。 4.自动内存管理 Java程序中所有的对象都是用new操作符建立在堆栈上,这个操作符类似于c++的 new操作符。下面的语句由一个类Readkcy建立了一个对象,然后调用该对象的work方 法: 配『9dLey my们rk; m?work=new Readkey() m!work.work()g 这个简单的代码片段突出了Ja调和c十十的一些主要差别,在c十十中,语句Read— key”ywork在堆栈结构上建立了一个Readkcy的实例。在JaM中不支持基于堆栈的对象, 所以这条语句建立了一个叫”ywork的变量,该变量中存有对象Readk。7的引用。 Javs自动进行无用内存回收操作,不需要程序员进行删除。而c十十中必须由程序贝释 放内存资源,增加了程序设计者的负扔。Java中当一个对象不被再用到时,无用内存回收器 将给它加上标签以示删除。无用内存回收器在后台运行,利用空闲时间工作。 5.操作符重载 Java不支持操作符重载。操作符重载被认为是c十十的突出特征,在Java中虽然类大 体上pJ以实现这样的功能,但操作符重载的方便性仍然丢失了不少。Java语言不支持操作 符重载是为了保持Java语言尽可能简单。 6.预处理功能 Java允预处理器.因此不支持预处理功能。c/c十十在编译过程中都有一个预编泽阶 段,即众所周知的预处理器。预处理器为开发人员提供了方便,但增加丁编译的复杂性。JaM 没有预处理器,但它提供的引入语句(i”Port)与c十十预处理器的功能类似。 7. Java不支持缺省函数参数,而c十十支持。 在c中,代码组织在函数中,函数可以访问程序的全局变量。c十十增加了类,提供了类 算法,该算法是与类相连的函数,c十十类方法与Java类方法十分相似,然而,由于c十十仍 然支持c,所以不能阻止c十十开发人员使用函数,结果函数和方法混合使用使得程序比较 混乱。 Java没有函数,作为一个比c十十更纯的面向对象的语言,Java强迫开发人员把所有 例行程序包括在类中,事实上,用方法实现例行程序可激励开发人员更好地组织编码。 8 字符串 c和c十十不支持字符串变量,在c和c十十程序中使用Null终止符代表字符串的结 束,在Java中字符串是用类对象(strinR和stringBuffer)来实现的,这些类对象是Java语言 的核心,用类对象实现字符串有以下几个优点: (1)在整个系统中建立字符串和访问字符串元素的方法是一致的;

文档评论(0)

tianma2015 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档