Differences Between Java and C++

原文出处:阳光日志

1.定义变量和数组时,Java默认初始化,C++不初始化;因为变量未进行初始化,结果是一个任意的值,这将是非常危险的。因此C++的代码在定义变量后必须给其进行初始化。

2.Java中有垃圾回收机制,C++没有。Java中有垃圾回收机制,Java中new对象后不用管,不用考虑释放;虚拟机会自动去回收内存;C++中new了对象或分配内存后一定要记得释放,不然就会内存泄漏;要使C++创建对象自行释放,要自己实现一套引用计数的机制。

3.Java中只有引用,没有指针;C++中有引用,也有指针。因为没有指针,Java代码的可读性好,更也安全;相较而言,C++就更难懂,但更灵活(特别是算法的一些操作时,指针的存在使数据和内存的操作变得极大的方便和灵活)。

4.在定义类的成员时,Java可以赋初值,C++不可以

5.函数的参数,C++可以有默认形参,Java不可以

6.Java中用final修饰不改变的成员,C++用const修饰不可改变的变量