Java and C++ are quite similar, as far as programming languages go. Some may argue that they are too similar, and that Java will very quickly be replaced by some new emerging language. I'm not sure about this, but for the moment Java is exceedingly elegant.
This similarity works well, as Java and C++ are very similar syntactically. A C++ programmer should have little difficulty reading and understanding a piece of Java code.
The prime selling point of Java is that it is totally object-oriented. While C++ is really just a hack of C to add OOP, Java was designed from the ground-up to be OO. It's hard to describe the benefits of OOP in a paragraph. You really need to be down in the trenches to appreciate it.
Beyond that, Java is quite a bit easier to program. A C++ programmer needs to spend a great deal of time (if he is doing anything complex) dealing with pointers and dynamic memory allocation and destruction. Java (thank God!) does away with pointers and handles memory cleanup automatically via it's garbage collector.
Even more, Java has a very good built-in library of classes. Network code is excellent, of course. Important features such as threading (normally OS-dependant) are also built in.
Indeed, Java is slower than C++, but as Java compilers begin to emerge, the gap will disappear. If you're writing a high-performance app, like a game, then C++ is really the only choice. However, for less-demanding apps (and especially for distributed / network apps), Java offers a great deal of convenience that most programmers will appreciate.