I had replied already, but a new point came to my mind.
Java has limits, not only in the question how close to the iron you can get, but also in some other areas.
C++ has less limits, but it has a whole lot of traps for programmers. I keep being told, that skilled programmers will learn to avoid them, but I find my productivity with Java being conatntly higher than with C++. For me, one of the reasons for higher produzctivity is that fact that Java has limits. These limits streamline the way of development to some extend, and make it easier to read and maintain code, also easier to find bugs.
If you ever had to work with a piece of C++ code where magicians went rampant on template and overloeaded operator use, macros and obscure syntactical tricks in the preprocessor, you know why the limits in Java are good.