C++ 编程语言和 Java 之间有许多不同和相似之处。 下面列出了 C++ 和 Java 之间的主要区别:
比较指数 | C++ | Java |
平台相关性 | 平台相关 | 平台无关 |
主要用途 | 主要用于系统编程。 | 主要用于应用程序编程。 它广泛用于基于 Windows、基于 Web、企业和移动应用程序。 |
设计目标 | 专为系统和应用程序编程而设计。 它是 C 编程语言的扩展。 | 被设计和创建为打印系统的解释器,但后来扩展为支持网络计算。 它的设计目的是易于使用并且可供更广泛的受众使用。 |
Goto | 支持 goto 语句。 | 不支持 |
多重继承 | 支持 | 不支持通过类进行多重继承。 它可以通过使用java中的接口来实现。 |
运算符重载 | 支持指针。 可以用 C++ 编写指针程序。 | Java 内部支持指针。 但是不能在 java 中编写指针程序。 这意味着java在java中限制了指针支持。 |
编译器和解释器 | 仅使用编译器。 C++ 是使用将源代码转换为机器代码的编译器编译和运行的,因此 C++ 是平台相关的。 | 使用编译器和解释器。 Java 源代码在编译时被转换为字节码。 解释器在运行时执行这个字节码并产生输出。 被解释这就是它独立于平台的原因。 |
按值调用和按引用调用 | 支持按值调用和按引用调用。 | Java 仅支持按值调用。 Java中没有引用调用。 |
结构与联合 | C++ 支持结构和联合。 | 不支持 |
线程支持 | C++ 没有对线程的内置支持。 它依赖第三方库来支持线程。 | Java 有内置的线程支持。 |
文档评论 | 不支持 | Java 支持文档注释 (/** ... */) 为 Java 源代码创建文档。 |
虚拟关键字 | 支持 virtual 关键字,以便我们可以决定是否覆盖函数。 | Java 没有 virtual 关键字。 我们可以默认覆盖所有非静态方法。 换句话说,非静态方法默认是虚拟的。 |
无符号右移 >>> | C++ 不支持 >>> 运算符。 | Java 支持无符号右移 >>> 运算符,该运算符在负数的顶部填充零。 对于正数,它的工作方式与 >> 运算符相同。 |
继承树 | C++ 总是创建一个新的继承树。 | Java 总是使用单一继承树,因为所有类都是 Java 中 Object 类的子类。 Object 类是 java 中继承树的根。 |
硬件 | C++更接近硬件。 | Java 与硬件的交互性不强。 |
面向对象 | C++ 是一种面向对象的语言。 然而,在 C 语言中,单个根层次结构是不可能的。 | Java 也是一种面向对象的语言。 但是,一切(基本类型除外)在 Java 中都是对象。 它是一个单一的根层次结构,因为一切都派生自 java.lang.Object。 |
备注:
Java 不支持 C++ 等默认参数。
Java 不支持像 C++ 这样的头文件。 Java 使用 import 关键字来包含不同的类和方法。
C++ 编程示例
文件:main.cpp
输出:
Java 编程示例
文件:Simple.java
输出