This is a great place to start learning Java. I think the book is good for beginners to start learning Java, as well as great reference for those experienced with Java.
The book does not use an IDE to create, compile, and run the programs. It uses javac and java commands to compile and run. I used both the SDK command lines and the IntelliJ IDEA Community Edition to compile and run the programs. Both worked fine, but I also have an interest in learning to use IntelliJ IDEA.
The book covers the Java language, the Java Library, Software Development with Java Beans, Swing, Servlets, and ends with building 2 sample applications.
The book covers Data Types and Operators, Control Statements, Classes, Objects, Methods, Packages, Interfaces, Exception Handling, Inheritance, I/O, Multithreading, Enumerations, Autoboxing, Static Import, Annotations, Generics, Applets, Events, AWT and Swing, Java's Documentation Comments, Varargs, Networking, Collections, Concurrent API, JavaBeans, and servlets.
All the code is available for download and is very well organize and usable. It is separated by chapter.
My favorite part of the book was that it spent a lot of time on UI topics. There were several good chapters on AWT and Swing. I also like the author's writing style. The book is a nice read as well as a good reference.
My main complaint about this book is that it includes almost all of the Java, A Beginner's Guide, 5th Edition. Anyone beginning Java would obviously start with Java, A Beginner's Guide, 5th Edition, but if I was to do it again, I would not bother with Java, A Beginner's Guide, 5th Edition. The only advantage the Java, A Beginner's Guide, 5th Edition book offers is that it is more of a tutorial oriented book. It has little extras like self-tests and hands on exercises.
My main complaint leads to my second complaint. I would have liked to see more on Servlets. There is a chapter that introduces them and then they are used in the sample applications, but I would have liked to see a lot more on them. I know the book is already huge, but if the Java, A Beginner's Guide, 5th Edition was not included in it, there would have been plenty of room for more on Servlets.
I have a C# background so the concepts and syntax were not that hard to pick up. What I needed was an overview of the libraries that are available with Java. I felt I got what I needed to jump start my Java learning path. I will be keeping this book handy to use as a reference in the future.
All in all I find this a great book for the beginner and the experienced Java programmer.