I could not have written this book without unfailing help, encouragement, and feedback from people in the Oracle language team: Brian Goetz, Paul San-doz, Aleksey Shipilev, and Dan Smith. Stuart Marks provided comments so valuable that they helped to shape the book.
I thank the people whose reviews saved me from many mistakes and often suggested new directions: Graham Allan, Maurizio Cimadore, Chris Czarnecki, John Kostaras, Kirk Pepperdine, Jeremy Prime, and Philip Wadler. Of course, any remaining errors are my responsibility alone.
I owe a huge debt to my editor, Brandi Shailer, for her endless patience and optimism during the long gestation of this project.
3.14.131.212