I recommend it as a good introduction to performance issues on Java.
First a bit about my background. I've been programming Java for 3 years, although really seriously only for the last year. In the past I've been aware of performance issues, but never actually had to improve the performance of any code. Currently I am developing a server written in Java for which performance is going to be important.
My general impression of the book was that it was well written and an extremely easy read. Dov Bulka gave a good insight into the motivations and strategies of improving performance. The book really impressed with its efficient writing style Discussions were kept to a minimum and only the most common optimizations were discussed. Instead of having to fight through pages of irrelevant explanations, I managed to read the complete book within 24 hours and started to apply his advice immediately in both my design and code. This is definitely how I like my technical books!
The largest part of the book presents 48 different optimizations. They are grouped into 8 chapters. Each optimization has a discussion of the problem, a performance test (incl. very simple source code and results presented as graphs) and a discussion on the context were the optimization would be useful or not. The chapters cover Java String, language independent optimizations, Vectors and Hashtables, caching, I/O streaming, object recycling, synchronizations and JDBC usage. Generally a good mix of generic and Java specific optimizations.
In the last chapter Dov Bulka downloads a simple web server written in Java (this is one of Sun's tutorials) and applies many of the optimizations discussed in the book. Although this chapter does not introduce any new concepts or optimizations, it is very educational to see how the different optimisations can be applied to obtain a substantial performance improvement.
Although the book provides plenty of useful performance tips and tricks, I really value the fact, that I now have a good feel for how to approach performance problems, I know how to reason about them and how to evaluate different potential solutions. My general understanding off performance issues has grown substantially.
Is there anything I didn't like about the book? Only minor things A couple of the optimisations rely on deprecated APIs (he does point out that they are deprecated); the source code of the performance tests becomes very repetitive towards the end (I feel these should have been moved into an appendix); and the lack of source code in electronic format.
Don't let these points keep you from buying this book. I recommend it as a good introduction to performance issues on Java.