Java语⾔和C++语⾔的异同
Java与C++都是⾯向对象的语⾔,都使⽤了⾯向对象的思想(封装、继承、多态),由于⾯向对象由许多⾮常好的特性(继承、组合等),因此⼆者有很好的可重⽤性。
主要不同点:
1、Java为解释性语⾔,其运⾏过程为:程序源代码经过Java编译器编译成字节码,然后由JVM解释执⾏。⽽C/C++为编译型语⾔,源代码经过编译和链接后⽣成可执⾏的⼆进制代码,可直接执⾏。因此Java的执⾏速度⽐C/C++慢,但Java能够跨平台执⾏,C/C++不能。
2、Java是纯⾯向对象语⾔,所有代码(包括函数、变量)必须在类中实现,除基本数据类型(包括int、float等)外,所有类型都是类。此外,Java语⾔中不存在全局变量或者全局函数,⽽C++兼具⾯向过程和⾯向对象编程的特点,可以定义全局变量和全局函数。
3、与C/C++语⾔相⽐,Java语⾔中没有指针的概念,这有效防⽌了C/C++语⾔中操作指针可能引起的系统问题,从⽽使程序变得更加安全。
4、与C++语⾔相⽐,Java语⾔不⽀持多重继承,但是Java语⾔引⼊了接⼝的概念,可以同时实现多个接⼝。由于接⼝也有多态特性,因此Java语⾔中可以通过实现多个接⼝来实现与C++语⾔中多重继承类
似的⽬的。
5、在C++语⾔中,需要开发⼈员去管理内存的分配(包括申请和释放),⽽Java语⾔提供了垃圾回收器来实现垃圾的⾃动回收,不需要程序显⽰地管理内存的分配。在C++语⾔中,通常会把释放资源的代码放到析构函数中,Java语⾔中虽然没有析构函数,但却引⼊了⼀个finalize()⽅法,当垃圾回收器要释放⽆⽤对象的内存时,会⾸先调⽤该对象的finalize()⽅法,因此,开发⼈员不需要关⼼也不需要知道对象所占的内存空间何时被释放。
其他不同点:
1>C++语⾔⽀持运算符重载;Java不⽀持运算符重载。
2>C++语⾔⽀持预处理;Java没有预处理器,虽然不⽀持与处理功能(包括头⽂件、宏定义等),但它提供的import机制与C++的预处理器功能类似。
3>C++⽀持默认函数参数;Java不⽀持默认函数参数。
4>C/C++⽀持goto语句;Java不提供goto语句,但Java中的goto是保留关键字。
5>C/C++⽀持⾃动强制类型转换,这会导致程序的不安全;Java不⽀持⾃动强制类型转换,必须由开发⼈员显式地进⾏强制类型转换。
c语言和c++区别6>C/C++中,结构和联合的所有成员均为公有,这往往会导致安全性问题的发⽣;⽽Java根本就不包含结构和联合,所有内容都封装在类⾥⾯。
1>Java具有平台⽆关性,即对每种数据类型都分配固定长度的空间,例如int型总是占据32位;⽽C/C++不然,同⼀个数据类型在不同平台上会分配不同的字节数。
2>Java提供对注释⽂档的内建⽀持,所以源码⽂件也可以包含它们⾃⼰的⽂档。通过⼀个单独的程序,这些⽂档可以提取出来,并重新格式化为HTML。
3>Java包含了⼀些标准库,⽤于完成特定的任务,同时这些库简单易⽤,能够⼤⼤缩短开发周期。例如,Java提供了⽤于访问数据库的JDBC库,⽤于实现分布式对象的RMI等标注库。C++则依靠⼀些⾮标准的、由其他⼚商提供的库。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论