平常工作中会用到C++和Java, 这里列出一些C++与Java 的主要不同,以加深对这两种语言的理解。
1. 变量的定义
C++中任何类型的变量都可以用下面的形式定义:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
但在java中只有,内部类型可以这样定义。类必须用new操作生成reference.
由此,Java中特有value type和reference type的区别
Java中,内置类型不需要用new操作符来定义,这就是value type。 而reference type 需要用new操作符来定义:
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
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++中可以处理
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
12. C++中可以有static 函数和变量,Java中没有,并且所有的变量和函数必须定义在类中。
13. C++中有特有的运算符重载
未完待续...