This book is a practical guide for intermediate to advanced Java technologists who want to learn how to tune Java applications for performance using a quantitative, verifiable approach. It covers a wide range of aspects of performance tuning, including Java principles and technology, performance tests, anti-patterns, measuring Java performance numbers, JVM garbage collection, JIT compilation, Java language performance techniques, Java Collections API, and Java concurrency. The book emphasizes that performance tuning is a process of defining and determining desired outcomes, and it requires diligence.