How Java Differs from C and C++
Although Java was modeled after C and C++ languages, from C and C++ in many ways. Java does not incorporate a number of features available in C and C++. For the benefit of C and C++ programmers, we point out here a few major differences between C/C++ and Java languages.
Java and C
Java is a lot like C but the major difference between java and C is that Java is an object-oriented language and has mechanism to define classes and objects. In an effect to build a simple language, the java team did not include some of the C features in Java.
• Java does not include the C unique statement keywords sizeof, and typedef.
• Java does not contain the data types struct and union.
• Java does not define the type modifiers keywords auto, extern, register, signed, and unsigned.
• Java does not support an explicit pointer type.
• Java does not have a preprocessor and therefore we cannot use # define,
# include, and # ifdef statements.
• Java requires that the functions with no arguments must be declared with empty parenthesis and not with the void keyword as done in C.
• Java adds new operators such as instanceof and >>>.
• Java adds labeled break and continue statements.
• Java adds many features required for object-oriented programming.
Java and C++
Java is a true object-oriented language while C++ is basically C with object-oriented extension. That is what exactly the increment operator ++ indicates. C++ has maintained backward compatibility with C. It is therefore possible to write an old style C program and run it successfully under C++. Java appears to be similar to C++ when we consider only the “extension” of C++. However, some object-oriented features of C++ make the C++ code extremely difficult to follow and maintain.
Listen below are some major C++ features that were intentionally omitted from Java significant modified.
• Java does not support operator overloading.
• Java does not have template classes as in C++
• Java does not support multiple inheritance of classes. This is accomplished using a new features called “interface”.
• Java does not support global variable. Every variable and method is declared within a class and forms part of that class.
• Java does not use pointers.
• Java has replaced the destructor function with a finalize () function.
• There are no header files in java.
Java also adds some new features. While C++ is a superset of C, Java is neither a superset nor a subset of C or C++. Java may be considered as a first cousin of C++ and a second cousin of C as illustrated in Fig.2.1. A more detailed discussion on the differences between C++ and Java is available in Appendix C.