## Java和C++的区别 * Java 是**纯粹的面向对象语言**,所有的对象都继承自 java.lang.Object,**C++ 为了兼容 C 即支持面向对象也支持面向过程**。 * Java 通过虚拟机从而实现**跨平台特性**,但是 C++ 依赖于**特定的平台**。 * Java 没有指针,它的引用可以理解为安全指针,而 C++ 具有和 C 一样的指针。 * Java 支持**自动垃圾回收**,而 C++ 需要**手动回收**。(C++11 中引入智能指针,使用引用计数法垃圾回收) * **Java 不支持多重继承**,只能通过实现多个接口来达到相同目的,而**C++ 支持多重继承**。 * Java 不支持操作符重载,虽然可以对两个 String 对象支持加法运算,但是这是语言内置支持的操作,不属于操作符重载,而 C++ 可以。 * Java 内置了线程的支持,而 C++ 需要依靠第三方库。 * Java 的**goto 是保留字**,但是不可用,C++ 可以使用 goto。 * Java**不支持条件编译**,C++ 通过 #ifdef #ifndef 等预处理命令从而实现**条件编译**。 参考资料: * [C++ 工程实践(8):值语义 - 陈硕 - 博客园](http://www.cnblogs.com/Solstice/archive/2011/08/16/2141515.html) * [c++11改进我们的程序之垃圾回收](https://www.cnblogs.com/qicosmos/p/3282779.html)