Characteristics of Java as a programming language

- Simple:
- The developers of Java based it on the C++ programming language, but removed many of the object-oriented features that are rarely used or often used poorly. C++ is a language for object-oriented programming and offers very powerful features. However, as is the case with many languages designed to have power, some features often cause programmers problems, such as creating code that often contains errors and is poorly understood. Because the majority of the cost of software engineering is often code maintenance rather than creation, this shift to understandable code rather than powerful but poorly understood code can help reduce software costs. Specifically, Java differs from C++ (and C) in these ways:
- Java does not support the struct, union, and pointer data types.
- Java does not support typedef or #def ine.
- Java differs in its handling of certain operators and does not permit operator overloading.
- Java does not support multiple inheritance.
- Java handles command line arguments differently than C or C++.
- Java has a string class as part of the java.lang package. This differs from the null-terminated array of characters as used in C and C++.
- Java has an automatic system for allocating and freeing memory (garbage collection), so it is unnecessary to use memory allocation and de-allocation functions as in C and C++.