yes, well... i'm going to oppose everyone else and defend java.

i recommend learning java before c++
i personally believe most of the reasons you guys have pointed out actually work in favor of java
The reason is that C++ has a better shot of teaching you the actual inner workings of the computer
yes, let's try and confuse him by teaching him stuff he doesn't need to know right away
Java is so abstracted, that often you really have no idea how memory is being handled
and let's make him worry about memory allocation too. java is designed so you literally don't know (and don't need to know) how the memory is being handled. if you're creating a resource intensive program, you probably shouldn't be using java in the first place.
time sharing kernel to a flight simulator
why would a beginner ever need to reference these examples. just because c++ supposedly has more examples doesn't make it better, java DEFINITELY has enough example programs
Also, C++ has a lot less overhead for running programs
ya, with the crazy-intensive CPU programs beginners always write, they need to write native code (sarcasm)
If you are just learning for learning's sake, then I'd say go with C++
WHAT??? why would you learn a harder language that requires more practice and experience "just for learning's sake"
if you want to learn how to program as a hobby, learn java
if you want to learn and possibly get a programming job, i would learn java, then c++ and a few other languages such as C, python or perl, and if you're really into it, learn assembly and lisp, etc. it all depends
In C++ you have 1000 ways to do something, in Java they chose just one
not true at all. please tell me something you can only do one way.
other reasons include java's standard gui library (good for beginners who want stuff displayed onscreen)
i'll admit SUN "overengineered" AWT/SWING, but it gets extremely simple after you get to know it
java is also very forgiving (mostly due to exceptions). a beginner learning c++ could be overflowing buffers and never know it.
you also don't have to worry about pointers (which beginners usually struggle with), the difference between pointers, references, when copy constructors are called, shallow copies, the list goes on. they will eventually learn all that stuff, but when starting out with java, you don't need to learn it all at once.
i think it would be simpler to go from java to c++ (and learn how to delete allocated memory) than it is to go from nothing to c++