Preface.
Introduction.
I: STRATEGIES.
1. What Is Performance?
Computational Performance.
RAM Footprint.
Startup Time.
Scalability.
Perceived Performance.
2. The Performance Process.
Developing a Performance Process.
References on Object-Oriented Design.
3. Measurement Is Everything.
Benchmarking.
Profiling.
Dealing with Flat Profiles.
II: TACTICS.
4. I/O Performance.
Basic I/O.
Serialization.
5. RAM Footprint.
Computing RAM Footprint.
What Contributes to Footprint?
Class Loading.
6. Controlling Class Loading.
Eager Class Loading.
Reducing the Number of Classes.
Running Multiple Programs.
7. Object Mutability: Strings and Other Things.
Lots of Little Objects.
Handling String Objects.
Mutable Objects in AWT and Swing.
Other Mutable Object Tactics.
Mutable Object Case Study.
Small Objects and the Modern JVM.
Array Mutability.
8. Algorithms and Data Structures.
Selecting Algorithms.
Using Recursive Algorithms.
Beyond Simple Algorithms.
Selecting Data Structures.
Collections Example.
References on Algorithms and Data Structures.
9. Using Native Code.
Native Graphics Example.
Examining JNI Costs.
Native Code Case Studies.
10. Swing Models and Renderers.
Swing's Component Architecture.
Scalable Components.
11. Writing Responsive User Interfaces with Swing.
Guidelines for Responsive GUIs.
Using Threads in Swing Programs.
Using Timers in Swing Applications.
Responsive Applications Use Threads.
Example: Searching the Web.
12. Deployment.
Compiler Options.
JAR Files.
Packaging Utilities.
Dynamic Downloading.
Appendices.
A. The Truth About Garbage Collection.
Why Should You Care About Garbage Collection?
The Guarantees of GC.
The Object Lifecycle.
Reference Objects.
References on Garbage Collection.
B. The Java HotSpot Virtual Machine.
HotSpot Architecture.
Runtime Features.
HotSpot Server Compiler.
X Flags.
XX Flags.
References.
Index 221.