📜  Java和 C++ 的异同

📅  最后修改于: 2021-09-14 02:10:22             🧑  作者: Mango

如今, Java和 C++ 编程语言广泛用于竞争性编码。由于一些很棒的功能,这两种编程语言也主要用于工业。 C++ 因其高效、高速和动态内存利用而在编码人员中广受欢迎。 Java在IT行业应用广泛,在软件开发方面是其他任何编程语言都无法比拟的。
让我们通过各个点来比较这些流行的编码语言:

Java和 C++ 之间的相似之处

  1. 执行:在编译时, Java源代码或. Java文件被转换为字节码或.class文件。在运行时,JVM(Java虚拟机)将加载.class文件,并在解释器的帮助下将其转换为机器代码。方法调用编译后(使用 Just-In-Time (JIT) 编译器),JVM 将执行优化后的代码。因此, Java既是编译型语言,又是解释型语言。

    另一方面,C++ 仅使用编译器来执行代码。 C++ 编译器编译源代码并将其转换为机器代码。这就是为什么 c++ 比Java快但不独立于平台的原因。

    下面是Java和 C++ 代码如何执行的说明:

    执行Java代码

  1. C++代码的执行

  1. 特性: C++ 和Java都有几个面向对象的编程特性,提供了许多有用的编程功能。某些功能由一个支持,有些则不支持。
    下表显示了两种编程语言支持和不支持的功能:
Features C++ Java
Abstraction Yes Yes
Encapsulation Yes Yes
Single Inheritance Yes Yes
Multiple Inheritance Yes No
Polymorphism Yes Yes
Static Binding Yes Yes
Dynamic Binding Yes Yes
Operator Overloading Yes No
Header Files Yes No
Pointers Yes No
Global Variables Yes No
Template Class Yes No
Interference and Packages No Yes
API No Yes
  1. 应用: C++ 和Java都有广泛的应用领域。以下是两种语言的应用:
    • C++编程语言的应用
      1. 适用于开发大型软件(如旅客预订系统)。
      2. MySQL 是由 C++ 编写的。
      3. 为了快速执行,C++ 主要用于游戏开发。
      4. Google Chromium 浏览器、文件系统、集群数据处理都是用 C++ 编写的。
      5. Adobe Premier、Photoshop 和 Illustrator 这些流行的应用程序都是用 C++ 编写的。
      6. 高级计算和图形 – 实时物理模拟,高性能图像处理。
      7. C++ 还用于许多先进的医疗设备,如 MRI 机器等。
    • Java编程语言的应用
      1. 桌面 GUI 应用程序开发。
      2. Android 和移动应用程序开发。
      3. Java 的应用是在嵌入式技术中,如 SIM 卡、磁盘播放器、电视等。
      4. Java EE(企业版)为运行大型企业软件提供 API 和运行时环境。
      5. 网络应用程序和 Web 服务,例如 Internet 连接、Web 应用程序开发。
  2. 环境: C++ 是平台相关的,而Java是平台无关的编程语言。我们必须在同一平台上编写和运行 C++ 代码。 Java具有WORA(一次编写并随处运行)特性,通过该特性,我们可以在一个平台上一次编写代码,然后我们可以在任何地方运行代码。

Java和 C++ 之间的差异

Parameters Java C++
Founder Java was developed by James Gosling at Sun Microsystems. C++ was developed by Bjarne Stroustrup at Bell Labs since 1979 as an extension of the C language.
First Release On May 23, 1995 In October 1985
Stable Release Java SE 14 or JDK 14 was released on March 17, 2020. C++17 was released in December 2017.
Official Website oracle.com/java isocpp.org
Influenced By: Java was Influenced by Ada 83, Pascal, C++, C# etc languages. C++ was Influenced by Influenced by Ada, ALGOL 68, C, ML, Simula, Smalltalk etc language.
Influenced to: Java was influenced to develop BeanShell, C#, Clojure, Groovy, Hack, J#, Kotlin, PHP, Python, Scala etc languages. C++ was influenced to develop C99, Java, JS++, Lua, Perl, PHP, Python, Rust, Seed7 etc languages.
Platform Dependency Platform independent, Java bytecode works on any operating System. Platform dependent, should be compiled for different platform.
Portability It can run in any OS hence it is portable. C++ is platform dependent hence it is not portable.
Compilation Java is both Compiled and Interpreted Language. C++ is only Compiled Language.
Memory Management Memory Management is System Controlled. Memory Management in C++ is Manual.
Virtual Keyword It doesn’t have Virtual Keyword. It have Virtual Keyword.
Multiple Inheritance It supports only single inheritance. Multiple inheritance achieved partially using interfaces. It supports both single and multiple Inheritance.
Overloading It supports only method overloading and doesn’t allow operator overloading. It supports both methods and operators overloading.
Pointers It supports limited support for pointers. It strongly supports Pointer.
Libraries It doesn’t support direct native library call, but through only Java Native Interfaces. It supports direct system library calls, making it suitable for system-level programming.
Libraries libraries have a wide range of classes for various high-level services C++ libraries are comparatively with low level functionalities.
Documentation Comment It supports documentation comment (e.g, /**.. */) for source code. It doesn’t support documentation comment for source code.
Thread Support Java supports documentation comment (e.g, /**.. */) for source code C++ doesn’t have built-in support for threads, depends on third party threading libraries.
Type Java is only object-oriented programming language. C++ is both a procedural and object-oriented programming language.
Input-Output mechanism Java uses the (System class) System.in for input and System.out for output. C++ uses uses cin for input and cout for an Output operation.
goto Keyword Java doesn’t support goto Keyword C++ supports goto keyword.
Structures and Unions Java doesn’t support Structures and Unions. C++ supports Structures and Unions.
Parameter Passing Java supports only Pass by Value technique. C++ supports both Pass by Value and pass by reference.
Global Scope It supports no global scope. It supports both global scope and namespace scope.
Object Management Automatic object management with garbage collection. It supports manual object management using new and delete.
想要从精选的视频和练习题中学习,请查看C++ 基础课程,从基础到高级 C++ 和C++ STL 课程,了解基础加 STL。要完成从学习语言到 DS Algo 等的准备工作,请参阅完整的面试准备课程