All that theory and research is nice but then you go and open NetBeans, JEdit, or one of the other many Java built applications and you find quite a different reality.
It does not prove anything. These programs are sometimes not responsive enough, maybe they have too big a memory footprint, it does not mean that Java itself is slow. When I use Jake 2, I find what I expect from a Java application. I have used Java since 2002 and I have worked on some professionnal polished applications, this is the subset of the reality that I see. You can write bad programs with any language.
When you look at the non-Java versions of those applications (such as Visual Studio instead of NetBeans and Eclipse, and Notepad++ instead of JEdit) then you find them more responsive and use less memory. The same is also for plenty of other Java apps I've used over the years.
Actually NetBeans and Eclipse launch faster when you include the opening of projects. They both run faster and are way more powerful than Visual Studio. Even for C/C++ development. They do use more memory.. partly because in a garbage collecting environment there is overhead, and partly because they have way more features.
C/C++ has it's place, but in general terms Java is usually a better language for dealing with applications. System level stuff (like drivers), or areas that do need hand tuning in critical loops (with MMX/SSE, etc.) benefit from C/C++ and how easily it transitions between machine code and C+C++ compiled code.
I'm currently working on a project that uses a lot of mixed C++ and Java (I develop in C/C++ and Java) and the C++ parts are the most tedious. Simple things like dealing with text are a chore in C++ and I don't have to give it a thought in Java... why - because C++ doesn't do strings well.. it can't even decide what a string is , having char*, wchar_t *, std:string, std:wstring, LPCSTR, not to mention needing to deal with encodings of 8-bit strings... u-g-l-y. Our product processes video which is obviously sensitive to performance and yet we do as much as we can in Java because of the productivity gains and the cross-platform features it provides. We use C++ mainly to interface with native libraries from 3rd parties, and occasionally in a few places where it is just more suited to the task because of the low-level nature of the bit-twiddling that needs to be done.
The benefits of using Java come from a few places, language features (e.g. Strings), VM features (e.g. hotspot, portability), libraries (Java runtime has a lot more going for it out of the box), and perhaps just as important Tools (Netbeans, Eclipse, visualvm, Ant, etc. vs. VisualStudio).