Similarities and Differences Between Java and C++

Java and C++ 

Some of the similarities and differences are in the following table: 

Features                           Java                                       C/C++ 

Pointer                              No                                            Yes 

Operator Overload             No                                            Yes 

Typedef, Define, 
Preprocessors                    No                                            Yes 

Structures, Unions             No                                            Yes 

Enums                              No                                            Yes 

Functions                          No (only methods within classes) Yes 

Goto statement                  No                                             Yes 

Automatic CoercionsNo(types should be converted explicitly) Yes

Global Variables                 No. Variable is part of a class      Yes 

Templates                          No                                            Yes 

Private, Protected, Public 
Inheritance                        No                                             Yes 

Default parameters             No                                            Yes 

Garbage Collection             Yes                                           No 

Multi-thread support           Yes                                           No 

Multiple Inheritance            Yes. Supports only interface inheritance and not implementation inheritance! 

Exception Handling            Yes. try/catch must be defined if the function declares that it may throw an exception.
                                                                                         Yes. You may not include the try/catch even if the function throws an exception. 

Function Overload              Yes                                           Yes 

Internationalization              Yes                                          Yes 

Include of other Objects      #import                                     #include

Comments                         "//","/* */,/** */                         "//","/* */"

What are the main differences between Java and C++?

Everything is an object in Java (Single root hierarchy as everything gets derived from java.lang.Object).

Java does not have all the complicated aspects of C++ ( For ex: Pointers, templates, unions, operator overloading, structures etc..).

The Java language promoters initially said "No pointers!", but when many programmers questioned how you can work without pointers, the promoters began saying "Restricted pointers." You can make up your mind whether itís really a pointer or not. In any event, thereís no pointer arithmetic.

There are no destructors in Java. (automatic garbage collection).

Java does not support conditional compile (#ifdef/#ifndef type).

Thread support is built into java but not in C++.

Java does not support default arguments. Thereís no scope resolution operator :: in Java. Java uses the dot for everything, but can get away with it since you can define elements only within a class. Even the method definitions must always occur within a class, so there is no need for scope resolution there either.

Thereís no "goto " statement in Java.

Java doesnít provide multiple inheritance (MI), at least not in the same sense that C++ does. Exception handling in Java is different because there are no destructors.
Java has method overloading, but no operator overloading. The String class does use the + and += operators to concatenate strings and String expressions use automatic type conversion, but thatís a special built-in case.

Java is interpreted for the most part and hence platform independent.

Do you have a Java Problem?
Ask It in The Java Forum

Java Books
Java Certification, Programming, JavaBean and Object Oriented Reference Books

Return to : Java Programming Hints and Tips

All the site contents are Copyright © and the content authors. All rights reserved.
All product names are trademarks of their respective companies.
The site is not affiliated with or endorsed by any company listed at this site.
Every effort is made to ensure the content integrity.  Information used on this site is at your own risk.
 The content on this site may not be reproduced or redistributed without the express written permission of or the content authors.