Java Testing and Design: From Unit Testing to Automated Web Tests by Frank Cohen
This is a supremely useful book for software developers working on Java and J2EE-based Web-enabled applications, including Web Services. Frank Cohen is the "go-to" guy for enterprises needing to design, build, and test complex information systems. The author helps you go beyond learning the language to understand how design choices impact scalability, functionality, and performance. Your application might run perfectly in the lab, but it crashes in production. Or, you might already know Java, but you don't understand why your application runs so slowly. If that is the case, then this book will help you better understand your application and optimize it for maximum performance.