Learning C++ (in an OO manner
first is definitely the best way - although nowadays, with the prevalence of Java it could be argued that it may be more practical to go straight to Java.
Learning C++ first is better because you are forced to think about issues such as memory management, object copying and thread synchronization. If you get these things right in C++, then Java will be a breeze.
Java takes some of the pain away when dealing with those issues. This is only good *sometimes*. Also, in order to deal with those issues, major restrictions have to be placed on the language - again, this is only good *sometimes*.
There are also a number of philosophical differences between C++ and Java - which it is useful to be aware of.
Java at the end of the day, is easier to use than C++, partly because of its early adoption of a "standard library" and partly because all complex types are objects which all inherit from a common base class (Object).
Performance of Java is still an issue - which the Java community is making good progress with (JDK v1.4.1).
I started using C in about 1986, C++ in 1990, and playing with Java in1995. It wasn't until about 1998 that Java really became mainstream. Now I work mostly with Java.
It's probably best also, to take a look at the new support for generics and templates(?) that are coming up soon.
--Jatinder