Font Awesome Icons


c++ vs java

No. Topic C++ Java
1 Platform Independence C++ is platform dependent. Java is platform-independent.
2 Compiler & Interpreter C++ is a compiled language. Java is a compiled as well as an interpreted language.
3 Source Code & Class Relationship No strict relationship with class names and filenames. Enforces strict relationship between the class name and filename.
4 Concept Write once compile anywhere. Write once run anywhere & everywhere.
5 Compatibility With Other Languages Compatible with C except for object-oriented features. The syntax is taken from C/C++.
No backward compatibility with any other language.
6 Type of Programming Language Procedural and object-oriented. Object-oriented.
7 Library Interface Allows direct calls to native system libraries. Calls only through Java Native interface and Java Native Access.
8 Root Hierarchy No root hierarchy. Follows single root hierarchy.
9 Distinguishing Features Supports procedural as well as object-oriented features. No destructors. Automatic garbage collection.
10 Portability C++ code is not portable. Java is portable.
11 Type Semantics Consistent between primitive and object types. Not consistent.
12 Input Mechanism Cin and Cout are used for I/O. and System.out.println
13 Access Control and Object Protection A flexible object model and consistent protection. The object model is cumbersome and encapsulation is weak.
14 Memory Management Manual System-controlled.
15 Multiple Inheritance Present Absent
16 Goto Statement Supports Goto statement. Does not support the goto statement.
17 Scope Resolution Operator Present Absent
18 Try/Catch Block Can exclude try/catch block. Cannot exclude if the code is supposed to throw an exception.
19 Overloading Supports operator and method overloading. Does not support operator overloading.
20 Virtual Keyword Supports virtual keyword which facilitates overriding. No virtual keyword, all non-static methods are by default virtual and can be overridden.
21 Runtime Error Detection Left to programmer. System responsibility
22 Language Support Used mainly for system programming. Mainly used for application programming.
23 Data and Functions Data and Function exist outside class. Global and namespace scopes are supported. Data and Functions are present only inside the class, package scope is available.
24 Pointers Supports pointers. Only limited support for pointers.
25 Structures & Unions Supported Not supported
26 Object Management Manual object management with new and delete. Automatic object management using garbage collection.
27 Parameter Passing Supports call by value and call by reference. Supports only call by value.
28 Thread Support Thread support is not very strong, it relies on the third party. Very strong thread support.
29 Hardware Nearer to the hardware. Not very interactive with hardware.
30 Documentation Comment Does not support documentation comment. Supports documentation comment(/**…*/) that creates documentation for Java source code.