Hardcore Java
Just as software development is an iterative process in which an application is never truly "done," the education of a developer should continue for years. You can useHardcore Javaas a guide to the transition from novice Java programmer to journeyman, or as a map to parts of the language you haven't explored (or explored adequately) in your development work to date. Because of those design goals, this book is something of a catch-all, covering about a dozen general topics ranging from exception-handling to nested classes (and interfaces!) and the reflection API. The coverage clearly derives from the author's "lessons learned" notes, and they're rich with information. If nothing in this book surprises you, you're probably very experienced with Java.In addition to this book's tutorial function,Hardcore Javaputs forth and defends a number of opinions about the design and style of Java software. One example: After explaining how bit fields work--bit fields aren't widely used in Java programming, and their advantages may be interesting to some programmers--Robert Simmons points out that they're inherently limited in their ability to contain data, and that this can cause problems. This is the kind of design tradeoff that more advanced Java programmers have to consider, and Simmons does the Java community a service by showing programmers how to think critically about the capabilities of their language.--David WallTopics covered: Advanced Java topics, including final constants, collections, exception handling, and nested classes. There's a useful bit about getting customers to help you design the data models they need, and very extensive coverage of reflection.