Good Java Books for Beginners?
nobody69 asks: "During the spring I took a C++ class at the local junior college and, frankly, the textbook sucked. However, I remembered hearing Good Things about 'Practical C++ Programming' on /., so I picked it up and found it to be a great resource, especially since it was about half the price of the text. But I'm starting Java soon, so I was wondering if there was any Java equivalent - something with lots of short, to-the-point examples and good explanations. 'Practical C++ Programming' also had some exercises at the end of each chapter, whicch would be nice, but aren't necessary."
However, Java is a different deal all together. First of all, if you are familiar with C++ you now about 90% of Java right of the bat. So you don't really need a "from scratch" Java book. All you really need is reference material, and some basic guides on how key things work in the JVM, like threading, synchronization, etc.
My recommendation is the web on this one. Download the latest JDK (1.3 or 1.4). That is full of great references, API's, HOWTO's and guides. This will be the source of 95% of your Java knowledge.
Next, I'd start checking out C/C++ User's Journal's Java Solutions. You can subscribe to the magazine, but frankly I'd stick to the online version. These guys are C++ freaks who talk about java from the C++ perspective, so you will feel at home with the discussions there.
The only books that I would recommend, are for specific applications. For GUI work, get O'Reilly's Java Swing, and Topley's Core Swing Advanced Programming. Either one will do; they are both excellent. For Serlvet's, O'Reilly's Java Servlets is OK, but slightly out of date (maybe mine is and they have updated). Also, Professional JSP by Wrox is excellent for both serlvet and JSP work (even touches on EJB).
What is interesting for me about Java, is that I find myself using online resources much more than I ever do with C/C++ applications. Java documentation is so standardized (javadoc) that it lends well to this approach.
Someone you trust is one of us.