C++和Java细节对比

C++和Java细节对比

ID:38173547

大小:32.98 KB

页数:17页

时间:2019-06-06

C++和Java细节对比_第1页
C++和Java细节对比_第2页
C++和Java细节对比_第3页
C++和Java细节对比_第4页
C++和Java细节对比_第5页
资源描述:

《C++和Java细节对比》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Java语言和C++语言的差异[引子]这个话题并不新鲜,但是作为语言比较类的文章,从基础的、具体的、细节的层面来做比较,做小结,恐怕对beginner而言,应该是有所裨益的,想来会比论坛里的口水仗,抑或概念性的、大层面的比较要来得更为实际一些吧  Java采用了C及C++的语法格式,对于学习过C及C++的程序设计者来说,学习Java将有可能很轻松。但是,如果仔细检查Java语言的许多细节,就会发现Java取消了不少C及C++的特性,并且加入了一些新的特性。这些差异包括:  ■不再有指针(Pointer

2、)的概念。  这是Java和C/C++在语法上的主要区别之一。在C及C++中,指针的灵活运用将会给程序设计带来极大的便利,但是其灵活性也成为了导致程序不稳定的一个主要因素。配合C及C++的内存管理策略,编程人员必须亲自跟踪自己向系统申请到的内存,最后确认交还给系统。并且在使用指针时,要随时注意是否超过合法的内存空间,造成SegmentationFault或GeneralProtectionFault这样的问题。  Java提供了一种引用(Reference)类型用来替代指针,通过引用去访问申请到的内存

3、空间,可以确保不会访问不属于自己的内存空间,同时,程序的执行系统也可以动态地做内存垃圾回收工作,将那些被取消引用的内存空间回收给系统使用。这种动态内存分配机制,通过牺牲一定的灵活性,保证了内存分配一定程度上的安全性。  ■不再有函数(Function)的概念。  Java编程语言中,取消了结构化语言中最重要的部分--函数。在面向对象程序设计的概念里,对象的数据才是真正的主题,而处理对象数据的方法则必须依附在对象内才有意义。因此函数概念完全是不必要的。这强化了面向对象的开发策略。■不再使用structu

4、re、union和typedef。  事实上,在C++中就可以去掉C中的structure和union等对复杂数据的自定义结构类型了,因为类(Class)的定义方式完全可以做到这项功能。而typedef的功能也可以由类来实现。虽然C++这样的设计是为了和C兼容,但是这些毕竟是多余的语言特点,在Java语言中便被抛弃了。  ■不再有类的多重继承(MultipleInheritance)。  在C++中,多重继承是一项很强的功能,但也是较难掌握的。取消多重继承降低了Java语言的功能,但它使Java看起来

5、更为简洁。同时,Java也提供了接口(Interface)的方式,可以实现部分多重继承的作用。和多重继承的不同之处在于接口并不会定义类方法的内容,以及类中的数据。  ■不再有操作符重载(OperatorOverloading)。  操作符重载被看作是C++的一个特色。在C++中,利用操作符重载,程序设计者通过对现有运算符赋予自己的定义,可以使程序看起来更为自然。但是,如果使用不当,也会使整个程序的可读性大受影响。同时,这一功能的存在也并非必要,程序设计者可以定义类中的方法来达到同样的目的。  ■取消了

6、自动类型转换。  Java是一种强类型检查的编程语言,对于诸如浮点型变量赋值给整型变量这样的情况而言,在C++的语法中是允许的,最多只是在编译时给出警告信息。但是,在Java中,除非写明强制类型转换,否则编译无法通过。  ■不再有预处理器(preprocessor)功能。  利用C/C++中提供的#define、#include等预处理指令,厉害的程序设计人员可以自己开发一套只有自己才看得懂的宏指令集。从软件工程的角度上看,这对团队开发软件和整个软件的维护都是十分不利的。同时,预编译后的程序代码和程序

7、设计者看到的程序代码是不同的。如果宏指令集有错,编译器产生的错误信息将不会是编程人员所预期的,这增加了程序调试的难度。  ■取消了goto语句。  在C++中,goto语句已经不被建议使用了,保留goto只是为了和C语法兼容。在Java中goto语句被完全抛弃了,与此同时,Java又扩大了break语句和continue语句的功能,通过使用break和continue,程序流程被允许在多层循环中跳转。  可以这样说,Java编程语言是一种简洁而有效的纯面向对象的编程语言。而C++语言因为要与C兼容(C

8、++语言是作为C语言的一个超集被定义的),所以在面向对象的特性方面不如Java好。对比C++和Java“作为一名C++程序员,我们早已掌握了面向对象程序设计的基本概念,而且Java的语法无疑是非常熟悉的。事实上,Java本来就是从C++衍生出来的。”然而,C++和Java之间仍存在一些显著的差异。可以这样说,这些差异代表着技术的极大进步。一旦我们弄清楚了这些差异,就会理解为什么说Java是一种优秀的程序设计语言。本附录将引导大家认识用于区分Java和C+

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。