This document discusses the importance of Java performance and provides eight puzzles with morals about improving Java performance. Specifically, it notes that performance should be planned initially, provides puzzles about avoiding object creation with new, using primitive types over strings, precomputing string lengths, method inlining, reusing objects like arrays and BufferedReaders, and reusing existing Java libraries. The puzzles are intended to teach ways to improve performance through practices like these.