One Minute Bottom Line
|I've a very good reference book for developers new to Java.
By Cay Horstmann, Gary Cornell
Find Core Java Volume 1--Fundamentals, 9th Edition at InformIT
The introduction chapters have good details on the background of the development of Java and setting up a development environment.
This is really good for someone with little to no programming knowledge or experience and no exposure to Java.
The book follows a very logical flow that would work very well for learning Java and programming. In fact, I can see this book being used as a text book for freshman learning Java in college, I would recommend this to any college student looking to learn Java and enhance their library. The book starts with a good introduction to Java, then the basic programming environment, the fundamental programming structures, objects and classes, inheritance, interfaces and inner classes. The next four chapters deal with Swing and graphics which really seem dated at this point. These probably are left over from previous versions of the book and should probably moved to the end of the book as optional.
A quick introduction to web or Android programming seems more currently relevant and more interesting to beginning developers. There is a very thorough chapter on exceptions, assertions, logging and debugging, which most developers should jump to before graphics programming, This is very helpful to know how to debug and handle errors when you are first programming in a language, it's also helpful to get developers to start thinking Test Driven. The last three chapters are excellent. Generic Programming, Collections and Multithreading are all extremely important topics and are covered very well here. For these three chapters alone I would buy this book.
There are a few items that every developer can learn and even a quick read of a few sections of this book will yield gems like:
Map map = Thread.getAllStackTraces();
for (Thread t : map.keySet())
StackTraceElement frames = map.get(t);
// .. analyze frames
I have a few minor issues with the book.
Unfortunately some of the examples are from 2007 and could use some updates. A nice upgrade for this book would be for the sample code to be uploaded to Github.
The book support web site needs a drastic update as it is very out of date.
Some enhancements that would be great to see:
- This book could use a section on new features / differences in Java 7 in depth.
- Some mention of items that are coming for Java 8.
- I also think some in-depth discussion on the JVM would be insightful as an advanced section.
- Also the mentioned addition of Android or web programming would be a nice touch.
If you haven't programmed in Java before this is a very thorough reference to all the basic the language has to offer. It is also great for C++ developers looking to move over to Java. If you are experience this would best serve as an occasional reference on variety of java topics from collections, synchronization to various Java class libraries. It is very well written and formatted, making it easy to read and to find the sections you need. I enjoy the format with the C++ Notes, Tips and other Notes.
I recommend this book to anyone learning Java or in need of a thorough basic reference. It's amazing to see a book grow and be relevant after so many years and revisions, much the way that Java the language has done so.