Well, maybe I'm not the best person to ask, and my answer was a bit off-the-cuff. The best answer is probably more like: it depends on what you're doing.
But, I just find that Java makes life easier. For example, you don't have to worry about endianess issues. You don't have to worry about portability (as long as you can run a JVM). You can serialize objects across the network easily, and if you want to do stuff like RPC, there's Cajo.
On the C++ side, you have stuff like LAPACK? Though I'm not too sure about this stuff...
Also, Google's Protocol Buffers project is quite helpful in passing data around. (C++, Java, Python, in any combination)