After reading all of the posts, I think it's important to inject some comments that are non-biased:
1.) C/C++ is a great tool for many jobs, the catch is that it is a tool that should be used when needed. Just like you don't kill a fly with a shotgun, you should use the correct tool for the right job. This is important to note when blazing fast speeds are not needed, and bare to the metal control is not needed. If I need a simple program to chat with someone remotely and want to implement it very fast, I would probobaly choose VB or Java instead of c++ because of higher productivity rates. Of course, speed critical applications (i.e. xbox game) I would definitely choose c or c++ (then again, it is the only choice, but I think you get my point).
2.) Java is making great strides to compile to NATIVE code, ever hear of gcj ? If you are more confortable programming in java eventually there will be little to no difference, but also c/c++ compilers have had ages to mature, whereas java native compilers are relatively new. Linux kernels can support java natively as well (if compiled in, or module is inserted). The portablility factor of java apps is nice, but alot of times it is not nearly as portable as one would think. It is easy to port between *nix's but, between widnows *nix complicated apps might give you hell. I personally prefer c/c++ over Java because I think some of the OOP ideas are overboard and overly complicated (i.e. BufferedWriter bw = new BufferedWriter(new PrintWriter(stream.getOutputStream())); etc...not sure if that's right but you get the picture).
3.) BenJeremy was right, language selection is a religious battle, similar things can be found in every area of the IT industry. For instance the OpenGL vs. DirectX battle, or the Linux vs Windows, AMD vs. Intel, Insert Technology here vs Insert Rival Technology here. Everybody has their favorite and noone is gonna tell them different, not matter what. That's basic human nature though, I find it funny how it shows up everywhere, even in computer geek-dom.
4.) It's about choice really, that's why there are many different languages. Of course, to begin with there are languages that are easier to use and teach the fundamentals and basic constructs of programming easier, but you should choose a language that suits your thought process along with the problem at hand.
5.) It's almost hypocritical to state that java programmers are a dime a dozen, then say c/c++ is very valuable, then say a c/c++ programmer can learn java in no time. Wouldn't the reverse be true? couldn't a Java programmer pick up c/c++ in no time? The syntaxes are incredibly similar, and one programmer or another could pickup either one with experience in the other. C# as well. Just to note, I am a c++ programmer by trade, and not a Java fanboy. I just like the ideas behind things like c# and java.
I hope this helps a little to anyone new to programming that needed some clarification on different technologies...
dankydoo