Java is compared to C++ a clearer language and just creating a socket requires way more experience and effort in C++ than in Java, where it is simply done via 2/3 functions and 2 default library classes.
In C++ you either use the windows WINAPI, create it the very old C way or use external libraries (boost / SFML / etc.) which all require previous knowledge in managing them in an environment where there are a lot and lot of clients connected.
While it is obvious that C++ is faster (inline assembly can increase performance dramastically, but hell it is difficult to manage and its assembly, move instructions instead of copying, closer to hardware), I personally think a server that manages small calculation instructions and small responses, minimalistic worker threads but with a high quantity is still able to be quickly respond to the clients.
While C++ is almost hardware humping close to the system, and Java applications are run inside a virtual machine (
[Only registered and activated users can see links. Click Here To Register...]), Java has advanced far and is unnoticeably slower against regular C++ code. Java does not need big managements and if you have
[Only registered and activated users can see links. Click Here To Register...] it may be almost similar on performance, but with a lot less time and money spend on developers.