Two main drawbacks with C++ language are : Platform dependent and won�t support Internet and WWW. To solve these problems, James Gosling developed a new language called JAVA at sun Microsystems in 1991, which is platform independent and supports WWW & Internet. C++ supports operator overloading multiple inheritance but java does not. Everything (except fundamental types) is an object in Java (Single root hierarchy as everything gets derived from java.lang.Object). Java does not support pointers, templates, unions, operator overloading, structures etc. C++ supports structures, unions, templates, operator overloading, pointers and pointer arithmetic. Java support automatic garbage collection. Java, there is a Thread class that you inherit to create a new thread and override the run() method. C++ has no built in support for threads. Java doesn\'t provide multiple inheritance C++ does support multiple inheritance.