C++ 和 Java 的区别

C++ 和 Java 都可以作为面向对象语言,而 C++ 从 C 衍生而来,具有面向过程的功能。Java 在 JVM 上运行,方便在不同的平台之间进行移植。

  • C++ 依赖于平台,在不同的平台上需要重新进行编译,Java 只需要一次编译为字节码后,字节码便可以在任何平台上执行。
  • C++ 需要编译,Java 需要首先进行编译成字节码,然后字节码在 JVM 上解释执行。
  • C++ 需要手动管理内存(new/delete),Java 可以自动管理内存。
  • C++ 支持多重继承,Java 只支持单重继承,多重继承的效果可以通过 interface 来实现。
  • C++ 中,方法和运算符可以进行重载(静态多态/编译期多态),Java 只支持方法重载,不允许运算符重载。
  • C++ 通过 virtual 关键字来说明一个函数在派生类中是可以被重载的(动态多态/运行期多态),Java 里面没有 virtual 关键字,但是 Java 里面所有的非静态方法默认都是可以重载的(所有非静态方法默认都是 virtual 的)
  • C++ 支持指针,Java 对指针的支持十分有限。
  • C++ 没有内置的线程支持,大部分依赖于第三方库,Java 内置 thread 类来实现对线程的支持。
  • Java 要求每个文件里的类名和其文件名是一致的,C++ 无此要求。
  • 垃圾回收机制(gc)是 Java 最大的特点。
  • C++ 支持 namespace 来划分不同的命名空间,Java 要求所有的函数必须定义在类中。
  • C++ 支持传值或者传引用,Java 只支持传值。
posted @ 2020-08-03 14:00  winechord  阅读(103)  评论(0编辑  收藏  举报