|
|
12 of 12 people found the following review helpful:
4.0 out of 5 stars
Comprehensive and great coverage of Java 5.0 features, 1 April 2006
By A Customer
I will preface my comments by saying that this is not a suitable book for those seeking to learn Java. Java novices should seek out Head First Java, and follow up with the excellent Agile Java. You are then ready to take on this book.Widely regarded as one of the best books on Java, the 4th edition of Thinking in Java, covering Java 5.0, was a long time coming. It was well worth the wait, however. Admittedly, it starts slowly. The first couple of hundred pages are somewhat uninspired (10 pages devoted to a program that exhaustively evaluates operations on all primitives, for example), but it picks up. And when it hits its stride it is comprehensive. Traditionally tricky areas of Java like the I/O classes and inner classes are well-covered, and the coverage of the new features in Java 5.0 are second to none, in particular annotations and generics, the latter going well beyond their use for type-safe containers, and actually making self-bounded types understandable. Nearly two hundred pages are devoted to the new threading and concurrency classes. If you really want to know what's going on with these core classes, this is the go-to book. The coverage of Swing is uninspiring, particularly as apart from a smattering of pseudo-UML class diagrams, there is only one illustration in the entire book (and it's 1400 pages long) - a picture of a Flash component, and it's a text box! However, there are plenty of other books out there that cover Swing in depth, so it's easy to overlook this. Personally, I didn't see the need for the introduction to Flash in a Java book, although the discussion of the SWT classes was useful. The other downside to the book is that the example code can be long. On the one hand, they have the advantage of being complete and runnable. On the other, it can be hard to spot the pertinent parts, and although the code is copiously commented, the Head First series of books have ably demonstrated the value of a more in-depth annotation, coupled more closely to the main text. Additionally, especially early on, the code examples are often dull and abstract, with method names like f(), which obfuscate rather than clarify. Later on, however, there are several witty and imaginative examples, so I can only assume that Bruce Eckel got a bit bored trying to make bitshifting entertaining. Finally, people new to Java and without a C background, could find the early references to how things are different in Java to C and C++ unnecessarily confusing, although one is assumed to have downloaded the flash-based 'Thinking in C' e-seminar from the author's website. These are minor disappointments, however, compared to the breadth and depth on offer here. You will need to be pretty expert at Java not to pick up any new tips on performance or idiomatic usage from the material here, and I will be using this as my first stop for reference purposes, particularly for the new Java 5.0 features. If you do any Java programming, this is well worth your money and pretty essential.
|