I have never seen a single Java program that was running really smooth, no matter whether it was 3D or 2D. And it's not only the amount of memory used (C++ programs use a lot of memory as well), Java is just slow. However, if you don't have much C++ experience and you care about portability, Java is still a good choice.
Bjarne Stroustrup once said: "There are only two kinds of programming languages: those people always bitch about and those nobody uses." I agree.
I don't know what kind of java programs you've run, but I've never had any problems. Sure, it's usually not as fast as native c++, but in my experience the difference is negligible, and rarely noticeable for most applications. And yes, Java applications eat more memory than c++ ones. That is a technical necessity, due to garbage collection and portability. However, you DO have garbage collection and portability to every system capable of running a JVM, plus easy and effective multithreading and networking. There ARE things I wouldn't use java for. Dedicated high-performance software, for example, or low-level stuff. Writing a game is not one of them.
Look, there is a reason why Thomas Biskup writes ADOM II in Java. The guy knows exactly what he's doing.