Author: Paul J. Deitel & Harvey M. Deitel
Publisher: Prentice Hall, 2011
Aimed at: Programmers moving to Java; students
Pros: Comprehensive, suitable as a text book
Cons: Poor organisation of ideas
Reviewed by: Ian Elliot
The latest edition of the Deitel tome on Java has been updated to Java SE7.
I really didn't get on with this book but as some readers seem to like the approach used by the Deitel books, don't let this put you off. This is a second edition so the book is obviously popular with enough readers to warrant the update. Perhaps the reason is that it is successful despite being dull is that it makes a good course book. The general Deitel approach is to create something massive and something more like an academic textbook than an inspiring read.
It has to be said that this particular 1200 page brick does its best to be helpful and friendly by including short notes on common mistakes in programming. This makes it slightly less intimidating, but to be honest the layout and the very small print probably make the effort futile. It just looks like a hard read. On the other hand if you are looking for a book that covers the ground then you can't really fault this volume.
The book covers Java 7 SE from the first concepts, through objects, the user interface, widgets, graphics, JDBC, generics, networking, JavaServer Faces, JAX-WS, regular expressions and so on. The pace is fairly slow - there are two complete chapters on flow of control for example.
Although supposedly aimed at "programmers" the text starts off more or less from first principles. If you already program in any object-oriented language then there is a lot you will need to skip.
Once you get beyond the basics then there are lots of chapters on specific programming tasks and technologies. Applets and Java Web Start, multimedia, threading, networking, JDBC, JavaServer Faces and web services. Various parts of the book have been updated to take account of Java SE 7, but to be honest the changes introduced with version 7 don't make much difference to a book that covers so much ground.
But if you are a beginner then the order in which the material is introduced isn't helpful, nor is the introduction of advanced concepts such as UML and object oriented design right at the start. There are also a lot of places where, admittedly simple, concepts are used and then covered later. In short the authors don't seem to have a clear idea of who their audience is and as a result have ended up producing a book that isn't exactly right for any particular level of experience. What they seem to have in mind is to create a comprehensive text book that can be used with the guidance of a teacher to plot a course thought the book to suit the students.
If you can cope with skim reading through some of the very basic stuff then it might be of value to an experienced programmer needing to brush up your Java with a UML/object-oriented flavour. The best things I can find to say about it is that it's "big" and comprehensive. If you are looking for a course textbook then this deserves a look, but for self study it is hard work.