|
 |
|
|
 |
Preface |
|
|
 |
Audience |
|
|
 |
Typographical Conventions |
|
|
 |
Code Samples |
|
|
 |
Tools |
|
|
 |
Using Code Examples |
|
|
 |
Comments and Questions |
|
|
 |
Acknowledgments |
|
|
 |
Chapter 1. Java in Review |
|
|
 |
Section 1.1. Core Concepts |
|
|
 |
Section 1.2. Syntax Issues |
|
|
 |
Section 1.3. Access Issues |
|
|
 |
Section 1.4. Common Mistakes |
|
|
 |
Chapter 2. The Final Story |
|
|
 |
Section 2.1. Final Constants |
|
|
 |
Section 2.2. Final Variables |
|
|
 |
Section 2.3. Final Parameters |
|
|
 |
Section 2.4. Final Collections |
|
|
 |
Section 2.5. Instance-Scoped Variables |
|
|
 |
Section 2.6. Final Classes |
|
|
 |
Section 2.7. Final Methods |
|
|
 |
Section 2.8. Conditional Compilation |
|
|
 |
Section 2.9. Using final as a Coding Standard |
|
|
 |
Chapter 3. Immutable Types |
|
|
 |
Section 3.1. Fundamentals |
|
|
 |
Section 3.2. Immutable Problems |
|
|
 |
Section 3.3. Immutable or Not |
|
|
 |
Chapter 4. Collections |
|
|
 |
Section 4.1. Collection Concepts |
|
|
 |
Section 4.2. Implementations |
|
|
 |
Section 4.3. Choosing a Collection Type |
|
|
 |
Section 4.4. Iterating Collections |
|
|
 |
Section 4.5. Collection Gotchas |
|
|
 |
Chapter 5. Exceptional Code |
|
|
 |
Section 5.1. Two Types of Exceptions |
|
|
 |
Section 5.2. When to Use Exceptions |
|
|
 |
Section 5.3. Finally for Closure |
|
|
 |
Section 5.4. Exceptional Traps |
|
|
 |
Chapter 6. Nested Classes |
|
|
 |
Section 6.1. Inner Classes |
|
|
 |
Section 6.2. Limited-Scope Inner Classes |
|
|
 |
Section 6.3. Static Nested Classes |
|
|
 |
Section 6.4. Double Nested Classes |
|
|
 |
Section 6.5. Nested Classes in Interfaces? |
|
|
 |
Section 6.6. Nested Interfaces |
|
|
 |
Section 6.7. Nested Class Rules |
|
|
 |
Chapter 7. All About Constants |
|
|
 |
Section 7.1. Substitution Constants |
|
|
 |
Section 7.2. Bit Fields |
|
|
 |
Section 7.3. Option Constants |
|
|
 |
Section 7.4. Constant Objects |
|
|
 |
Section 7.5. Constant Encapsulation |
|
|
 |
Chapter 8. Data Modeling |
|
|
 |
Section 8.1. The Requirements Document |
|
|
 |
Section 8.2. Natural Language Modeling |
|
|
 |
Section 8.3. Aspects of Well-Designed Data Models |
|
|
 |
Section 8.4. Reusable Data Constraints |
|
|
 |
Section 8.5. Persistence |
|
|
 |
Chapter 9. Practical Reflection |
|
|
 |
Section 9.1. The Basics |
|
|
 |
Section 9.2. Reflection and Greater Reflection |
|
|
 |
Section 9.3. Applying Reflection to MutableObject |
|
|
 |
Section 9.4. Performance of Reflection |
|
|
 |
Section 9.5. Reflection + JUnit = Stable Code |
|
|
 |
Chapter 10. Proxies |
|
|
 |
Section 10.1. What Is a Proxy? |
|
|
 |
Section 10.2. Two Kinds of Proxies |
|
|
 |
Section 10.3. Proxy Gotchas |
|
|
 |
Chapter 11. References in Four Flavors |
|
|
 |
Section 11.1. The Problem |
|
|
 |
Section 11.2. Java Reference Concepts |
|
|
 |
Section 11.3. The Java Reference Classes |
|
|
 |
Section 11.4. Practical apps |
|
|
 |
Section 11.5. A Weak Listener |
|
|
 |
Section 11.6. When to Use References |
|
|
 |
Chapter 12. Tiger: JDK 1.5 |
|
|
 |
Section 12.1. New Language Features |
|
|
 |
Section 12.2. Generics |
|
|
 |
Section 12.3. Other Improvements in Tiger |
|
|
 |
Colophon |