C++ 与 JAVA:有什么区别?
什么是 C++ 语言?
C++ 是一种计算机编程语言,它包含了 C 编程语言以及 Simula67(第一个面向对象语言)的特性。 C++引入了类和对象的概念。
它封装了高级和低级语言特性。因此,它被视为一种中级语言。早些时候它被称为“C with classes”,因为它具有 C 语言的所有属性。
什么是 Java 语言?
Java 是由 Sun Microsystems 开发的编程语言。一个小型软件开发团队开发了这种语言。他们被称为绿色团队,他们于 1991 年发起了 Java 语言。
C++ 的历史
C++ 语言由 AT&T 贝尔实验室的 Bjarne Stroustrup 开发。 Stroustrup 是 C 的坚定支持者和 Simula67 的崇拜者。他想结合两种语言的精华。他的目标是创建一种支持面向对象编程特性的语言,并且仍然保留 C 的强大功能。这导致了 C++。
Java 的历史
Java 语言最初称为 OAK。最初,它是为处理设备和机顶盒而开发的。橡树是一个巨大的失败。因此,在 1995 年,Sun 将名称改为 Java 并修改了语言以利用蓬勃发展的万维网开发业务。
后来,在 2009 年,甲骨文公司收购了 Sun Microsystems,并拥有了 Sun 的两个关键软件资产:Java 和 Solaris。
主要区别:
- C++ 只使用编译器,而 Java 使用编译器和解释器。
- C++ 支持运算符重载和方法重载,而 Java 仅支持方法重载。
- C++ 借助 new 和 delete 关键字支持手动对象管理,而 Java 具有内置的自动垃圾回收功能。
- C++ 支持结构,而 Java 不支持结构。
- C++ 支持联合,而 Java 不支持联合。
<中心>
<图> 图>
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 Native Interface 和最近的 Java Native Access 调用 |
内存管理 | 程序员可以访问 | 系统控制 |
根层次结构 | C++ 没有这样的根层次结构。 C++ 支持过程和面向对象的编程;因此,它被称为混合语言。 | Java 是一种纯面向对象的编程语言。那是。为什么它遵循单根层次结构。 |
最佳功能 | C++ 支持面向对象的特性过程式编程特性。 | Java 支持自动垃圾回收。它不像 C++ 那样支持析构函数。 |
Goto 语句 | C++ 有一个 goto 语句。虽然,使用 goto 语句并不理想。 | Java 没有 goto 语句。关键字 got 和 const 即使不使用也是保留的。 |
多重继承 | C++ 提供多重继承。关键字 virtual 用于解决多重继承期间的问题(如果有)。 | Java 不提供多重继承。 |
作用域解析运算符 | C++有范围解析操作符(: :) 它用于定义类外部的方法,并在局部变量也存在同名的范围内访问全局变量。 | 无范围解析操作符(: :) 在爪哇。方法定义必须出现在一个类中,因此不需要范围解析。 |
支持方式 | C++同时支持方法重载和运算符重载 | Java 只支持方法重载。它不支持运算符重载。 |
便携性 | 必须为平台重新编译源代码;因此代码不可移植。 | 字节码类可转移到特定平台的 JVM。 |
类型语义 | 在原始类型和对象类型之间保持一致。 | 原始类型和对象类型不同。 |
库 | 主要是低级功能 | 用于高级服务的大量课程。 |
运行时错误检测 | 程序员的责任。 | 系统责任。 |
函数和数据 | 函数和数据可能存在于任何类之外,全局和命名空间范围都可用。 | 所有函数和数据都存在于类中;包范围可用。 |
平台 | C++ 程序依赖于平台。它们需要针对特定平台进行编译。 | Java 程序是平台无关的。 Java 程序是为 Java 虚拟机 (JVM) 编写的。它无需重新编译即可运行。 |
运行时错误检测 | 在 C++ 中,检查错误是程序员的责任。 | 检查程序中的错误是系统的责任。 |
指针 | C++ 支持指针。 | Java 仅对指针提供有限的支持。 |
结构 | 它支持结构。 | 它不支持任何结构。 |
联合 | C++ 支持联合。 | Java 不支持联合。 |
对象管理 | C++ 借助 new 和 delete 关键字支持手动对象管理。 | Java 非常依赖自动垃圾回收。它不支持析构函数。 |
java