- Pointers. Pointers don't exist in Java for two reasons:
- Pointers are inherently insecure. For example, using a C++-style pointer, it is possible to gain access to memory addresses outside a program's code and data. A malicious program could make use of this fact to damage the system, perform unauthorized accesses (such as obtaining passwords), or otherwise violate security restrictions.
- Even if pointers could be restricted to the confines of the Java run-time system (which is theoretically possible, since Java programs are interpreted), the designers of Java believed that they were inherently troublesome.
- Java does not include structures or unions. These were felt to be redundant since the class encompasses them.
- Java does not support operator overloading. Operator overloading is sometimes a source of ambiguity in a C++ program, and the Java design team felt that it causes more trouble than benefit.
- Java does not include a preprocessor nor does it support the preprocessor directives. The preprocessor plays a less important role in C++ than it does in C. The designers of Java felt that it was time to eliminate it entirely.
- Java does not perform any automatic type conversions that result in a loss of precision. For example, a conversion from long integer to integer must be explicitly cast.
- All the code in a Java program is encapsulated within one or more classes. Therefore, Java does not have what you normally think of as global variables or global functions.
- Java does not allow default arguments. In C++, you may specify a value that a parameter will have when there is no argument corresponding to that parameter when the function is invoked. This is not allowed in Java.
- Java does not support the inheritance of multiple super classes by a subclass.
- Although Java supports constructors, it does not have destructors. It does, however, add the finalize ( ) function.
- Java does not support typedef.
- It is not possible to declare unsigned integers in Java.
- Java does not allow the goto.
- Java does not have the delete operator.
- The << and >> in Java are not overloaded for I/O operations.
- In Java, objects are passed by reference only. In C++, objects may be passed by value or by reference.
Loads of Love,
Ravi
No comments:
Post a Comment