Java omits several rarely used, poorly understood and confusing features of C++ including operator overloading, multiple inheritance and automatic pointer coercions. |
It adds automatic garbage collection which makes dynamic programming easier in Java than in C++. |
It also adds 'Interface' construct, similar to Objective C concept, which often compensates for the lack of multiple inheritance. |
The resulting language retains the essence of C++ but is simpler and hence easier to program in. |
It also results in a much smaller kernel which is suitable for planned Java ports to consumer electronic devices. Base interpreter is ~40Kb, libraries and threads add additional 175Kb. |