Java 与 C++的不同

平常工作中会用到C++和Java, 这里列出一些C++与Java 的主要不同,以加深对这两种语言的理解。

1. 变量的定义

C++中任何类型的变量都可以用下面的形式定义:

ClassA a;

但在java中只有,内部类型可以这样定义。类必须用new操作生成reference.

由此,Java中特有value type和reference type的区别

Java中,内置类型不需要用new操作符来定义,这就是value type。 而reference type 需要用new操作符来定义:

int  i  =   5 ;
ClassA a 
=   new  ClassA( 5 );

C++中所有的类型一视同仁。没有这样的区别。

2.类对象的共有基类

Java中有一个缺省的Object基类,C++中的类没有这样的共有缺省基类。

3.Java 中有Interface类

C++中不存在Interface关键字,Java中的interface相当于C++中的全部函数都是纯虚的类。 如果一个类要实现一个interface使用implements

 

4.Java中存在super/extends关键字

如果调用父类的方法,C++中直接通过::操作符来调用基类的函数。而java是通过Super关键字来调用。

通过extends来继承父类。

5.C++支持多重继承,Java不支持
6.指针与reference

C++中有指针。Java中有reference,但是与指针的概念不同。

C++中的引用由&申明,必须被初始化也就是必须不能为NULL。

 7.const与final的不同

C++中,const 函数不能改写类的成员变量,const对象指针只能调用const函数。const变量在也不能被赋值。但是Java中final只保护变量不能被重新赋值。

 8. C++中有特有的namespace的定义,java中没有。

Java 中采用了类似的package包的概念。

9. C++中访问控制public,private和protect 是以类为界的。而Java中不同,package内是可以互相以public访问的,不管private还是protect.
10. Java 中有垃圾回收机制,而C++中没有
11. C++ 中有预处理机制,java中没有

C++中可以处理

#include  " xxx.h "
#define  ABC 123
#undef  ABC
#if  ..
...
#else
...
#error  
#endif
12. C++中可以有static 函数和变量,Java中没有,并且所有的变量和函数必须定义在类中。
13. C++中有特有的运算符重载

未完待续...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值