Both Java and C++ support OOP, but are not OOP languages.
C++ gives you all possible styles of programming: procedural, OOP, metaprogramming, functional, etc.
Java is somewhat limited in this area.
I think there are two main points between and c++
- java eliminate multiple inheritance while c++ still has, java uses implements multiple interfaces to replace multiple inheritance in c++
- java(specific JVM) has garbage collector to manage and recycle memory automatically, programmers don't need to care about the memory release and management. C++ on the other hand, programmers have to release memory after finishing using the object manually.