之间的区别 C++ 和 Java
之间的主要区别 C++ 和 Java
- C++ 仅使用编译器,而 Java 同时使用编译器和解释器。
- C++ 支持运算符重载和方法重载 Java 仅支持方法重载。
- C++ 支持使用新建和删除关键字的手动对象管理,而 Java 具有内置自动垃圾收集功能。
- C++ 支持结构,而 Java 不支持结构。
- C++ 支持工会,同时 Java 不支持工会。

什么是 C++ 语言?
C++ 是一种计算机编程语言,包含 C 编程语言和 Simula67(第一个面向对象语言)的功能。 C++ 引入了类和对象的概念。
它封装了高级和低级语言特性。因此,它被视为中级语言。以前它被称为“带类的 C”,因为它具有 C 语言的所有属性。
什么是 Java 语言?
Java 是 Sun Microsystems 开发的编程语言。一个小型软件开发团队开发了这种语言。他们被称为绿色团队,他们发起了 Java 1991 年的语言。
历史回顾 C++
C++ 语言是由 AT&T 贝尔实验室的 Bjarne Stroustrup 开发的。Stroustrup 是 C 语言的坚定支持者,也是 Simula67 的崇拜者。他想结合两种语言的优点。他的目标是创建一种支持面向对象编程特性并保留 C 语言功能的语言。这导致了 C++.
历史回顾 Java
- Java 语言最初被称为 OAK。最初,它是为了处理设备和机顶盒而开发的。Oak 是一个巨大的失败。因此,1995 年 Sun 将名称改为 Java 并修改了语言以利用蓬勃发展的万维网开发业务。
Later,在2009年, Oracle 公司收购了 Sun Microsystems,并获得了两项关键的 Sun 软件资产: Java 和 Solaris.
之间的区别 C++ 和 Java
产品型号 | C++ | Java |
---|---|---|
关系 | 类名和文件名之间没有严格的关系。在 C++,头文件和实现文件用于具体的类。 | 强制执行严格的关系,例如,PayRoll 类的源代码必须位于 PayRoll.java 中。 |
输入机制 | I/O 语句使用 in 和 cout,例如,in » x; cout« y; | I/O 输入机制相当复杂,因为它每次读取一个字节(System.in)。输出很简单,例如 System.out.println(x); |
编译器和口译员 | C++ 仅支持编译器 | Java 支持编译器和解释器 |
与其他语言的兼容性 | 与 C 源代码兼容,除了一些特殊情况。 | 不向后兼容任何以前的语言。语法受 C/C++. |
访问控制和对象保护 | 灵活的模型可提供持续的保护 | 繁琐的模型会导致弱封装。 |
提案 | 一次编写,随处编译 | 一次编写,随处运行 |
支持编程类型 | 允许过程编程和面向对象编程。 | 支持面向对象的编程模型。 |
接口 | 允许直接调用本机系统库。 | 仅通过 Java 本机接口和最近 Java 本机访问 |
内存管理 | 程序员可以访问 | 系统控制 |
根层次结构 | C++ 不存在这样的根层次结构。 C++ 同时支持过程式和面向对象编程;因此,它被称为混合语言。 | Java 是一种纯面向对象的编程语言。这就是为什么它遵循单根层次结构。 |
最好的功能 | C++ 支持面向对象特性过程化编程特性。 | Java 支持自动垃圾收集。它不支持析构函数 C++ 一样。 |
转到语句 | C++ 有一个 goto 语句。尽管如此,使用 goto 语句并不理想。 | Java 没有 goto 语句。关键字 got 和 const 即使不使用也是保留的。 |
多重继承 | C++ 提供多重继承。如果存在多重继承,则使用关键字virtual来解决此问题。 | Java 不提供多重继承。 |
范围解析运算符 | C++ 具有范围解析运算符 (: :) 它用于在类外部定义方法并在存在同名局部变量的范围内访问全局变量。 |
没有范围解析运算符 (: :) in Java。方法定义必须出现在类中,因此不需要范围解析。 |
配套方式 | C++ 支持方法重载和运算符重载 | Java 仅支持方法重载。 它不支持运算符重载。 |
便携性 | 必须针对平台重新编译源代码;因此代码不可移植。 | 字节码类可以转移到特定于平台的 JVM。 |
类型语义 | 原始类型和对象类型之间一致。 | 原始类型和对象类型有所不同。 |
图书馆 | 主要是低级功能 | 大规模、高级服务的课程。 |
运行时错误检测 | 程序员的责任。 | 制度责任。 |
功能与数据 | 函数和数据可能存在于任何类的外部,并且全局和命名空间范围可用。 | 所有功能和数据都存在于类内;包范围可用。 |
平台 | C++ 程序依赖于平台。它们需要针对特定平台进行编译。 | Java 程序与平台无关。 Java 程序编写的目的是 Java 虚拟机 (JVM)。它将运行而不需要重新编译。 |
运行时错误检测 | In C++,检查错误是程序员的责任。 | 检查程序中的错误是系统的责任。 |
指针 | C++ 支持指针。 | Java 仅提供对指针的有限支持。 |
结构 | 它支撑结构。 | 它不支持任何结构。 |
工会 | C++ 支持工会。 | Java 不支持工会。 |
对象管理 | C++ 支持通过新建和删除关键字来手动管理对象。 | Java 严重依赖自动垃圾回收。它不支持析构函数。 |