C++ is only a compiled language, whereas Java is compiled as well as an interpreted language.
Java programs are machine-independent whereas a c++ program can run only in the machine in which it is compiled.
C++ allows users to use pointers in the program. Whereas java doesn’t allow it. Java internally USES pointers.
C++ supports the CONCEPT of Multiple INHERITANCES whereas Java doesn't support this. And it is due to AVOIDING the complexity of name ambiguity that causes the DIAMOND problem.