- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java与C++的区别
朱年香
Java和C++都是面向对象的语言。并且Java常被称作为C++-,也有人说Java是从C++中衍生出来的。那么,C++和Java有什么区别呢?我们是先学习C++,再学的Java。所以对于我们来说,搞清楚C++和Java的区别是很有必要的。下面请听我的详细讲解。
引言
在C++中指针是一种数据类型。而在Java中无指针。Java语言让编程者无法找到指针来直接访问内存,从而有效地防止了C++语言中指针操作失误,如野指针所造成的系统崩溃。但也不是说Java没有指针,虚拟机内部还是使用了指针,只是外人不得使用而已。这有利于Java程序的安全。
1.指针
2.多重继承
C++支持多重继承,它允许多父类派生一个子类。也就是说,一个类允许继承多个父类。尽管多重继承功能很强,但使用复杂,而且会引起许多麻烦,编译程序实现它也很不容易。Java不支持多重继承,但允许一个类实现多个接口(Interface)。Java既实现了C++多重继承的功能,又避免了C++多继承在实现和维护上的复杂性。
3.数据类型
C++分为基本类型,非基本类型和指针类型。基本类型分为整型、字符型、浮点型和布尔型。非基本类型有枚举、数组、结构体、共同体、类。且C++某些类型的数据字节数和数值范围由操作系统和编译平台决定。
Java除了基本类型之外,其余类型的数据都作为引用数据类型。Java中数据类型的字节数和数值范围则是固定的。此外,Java还取消了C++中的结构和联合,使编译程序更简洁。
4.自动内存管理
C++是用new在堆里申请内存空间(创建动态变量),用delete回收动态变量;动态对象的创建和释放与变量的动态创建和释放是一样的。在Java程序中所有的对象都是用new操作符建立在堆栈上的,这个操作符类似于C++的“new”操作符,Java自动进行无用内存回收操作,不需要程序员进行删除。当Java中的一个对象不再被用到时,无须使用内存回收器,只需要给它加上标签以示删除。无用内存的回收器在后台运行,利用空闲时间工作。而C++中必须由程序释放内存资源,增加了程序设计者的负担。
5. 操作符重载
Java不支持操作符重载。操作符重载被认为是C++的突出特征,在Java中虽然类大体上可以实现这样的功能,但操作符重载的方便性仍然丢失了不少。Java语言不支持操作符重载是为了保持Java语言尽可能简单。
6.字符串
C++不支持字符串变量,常用字符数组来存放字符串。字符串结束标志为\0。而字符串的连接则需使用字符串连接函数strcat。在Java中字符串是用类对象(String和StringBuffer)来实现的,在整个系统中建立字符串和访问字符串元素的方法是一致的。Java字符串类是作为Java语言的一部分定义的,而不是作为外加的延伸部分。此外,Java还可以对字符串用“+”进行连接操作。
7.goto语句
goto是C/C++语言技术上的合法部分,在引用goto语句造成了程序结构的混乱,不易理解。goto语句一般用于无条件转移子程序和多结构分支技术。Java不提供goto语句,其虽然指定goto作为关键字,但不支持它的使用,这使程序更简洁易读。
8.类型转换
在C/C++中,有时会出现数据类型的隐含转换,这就涉及了自动类型转换问题。例如,在C++中可将一个浮点值赋予整型变量,并去掉其尾数。Java不支持C++中的自动强制类型转换,如果需要,必须由程序显式进行强制类型转换。
9. 异常
Java中的异常机制用于捕获例外事件,增强系统容错能力 try{
//可能产生异常的代码
}catch(exceptionType name){ //处理 }其中exceptionType表示异常类型。而C++则没有如此方便的机制。
10. 其它
1)在Java中,类定义采取几乎和C++一样的形式。但没有标志结束的分号。
2)Java中没有作用域范围运算符“::”。
3)对类型的检查和要求在Java里变得更苛刻。
例如: 条件表达式只能是boolean(布尔)类型,不可使用整数。
结束语
Java和C++各有各的优势,无需争论那种语言好,哪种语言不好,能够存在就一定有它的优势,只要你决定了要学编程就扎实的学好,编程语言都是相同的,学会一种,其他的学起来就很容易了。
谢谢观赏!
文档评论(0)