Adding to Malcolm:
You left out one of the biggest ones: Java is designed to be cross-platform compatible. To achieve this it uses interpreted bytecode rather than compiling to machine code, and contains numerous minor features to maintain compatiblity.
Off the top of my head:
Java Strings are dynamically resized. C/C++ strings (i.e. char arrays) have fixed size with major headaches about buffer overruns.
Java has built-in screen painting, i.e. features for putting buttons and dropdown boxes and so forth on the screen and manipulating them. C/C++ must use features provided by the OS, and which are therefore different between OSs. (See #1.)
Java has a built-in collections library.
Because C/C++ are truly compiled, you can do low-level things that you could not do with Java. For example, as far as I know there is no way with pure Java to talk to a USB port.
Etc.
To agree with Carl: Java is not "C++ with some things I don't like left out and some other stuff I wanted tossed in". While there are many obvious similarities between the two languages, there are also huge differences. Gosling and company obviously took a lot of inspiration from C++ when writing Java, but Java is not C++ version 2.0 by any stretch of the imagination.