Synopses & Reviews
Java has quickly become one of the most important languages in programming, particularly for professional and enterprise-level projects. From its infancy as a language primarily used for web applets to its maturity through servlets, Enterprise JavaBeans, and database access, Java has become a complex and robust tool for today's developer.Hardcore Java takes this language and breaks it apart, piece by piece, revealing the important secrets and tricks that will take you from a junior-level programmer to a seasoned and expert developer. You'll fly through the fundamentals and quickly find yourself learning about advanced memory management techniques, optimization and bytecode-level enhancements, and the techniques required to build lightning-fast GUIs. Throughout the book, you'll also master the art of writing and maintaining bulletproof and error-proof code, all while grasping the intricacies of the Java language.Hardcore Java covers:
- Use of the final keyword to optimize and protect your Java classes.
- Complete and thorough coverage of all types of nested classes, including how to optimize anonymous and inner classes.
- Detailed discussion of immutable objects, including unique tips on when to use them (and when not to).
- Elimination of bugs through exception-handling management.
- In-depth studies of constants, including their impact on the Java memory model.
- The most thorough discussion of reflection in print, moving far beyond other books' "Hello World" coverage.
- Construction and use of dynamic proxies, in both Java Standard and Enterprise editions.
- Expansive coverage of weak references, including usage patterns and their role in garbage collection and memory management.
Hardcore Java is an invaluable addition to every programmer's library, and even the most advanced developers will find themselves moving beyond their own conceptions into truly advanced applications of the language. Thousands of lines of code, heavily commented and easily runnable, illustrate each concept in the book.
About the Author
Susan Hancock is a proponent of child safety and character education, teaching elementary and secondary education for more than 30 years. As a lecturer and motivational speaker, she taught hundreds of church and civic groups. Hancock worked in the research and editing of both fiction and historical literary works. Robert Simmons has worked in animation for various studios including Disney, Don Bluth Studios, Warner Brothers, and DreamWorks. Simmons has been involved in the production of "The Land Before Time," "All Dogs Go To Heaven," "Rock-A-Doodle," "Prince of Egypt," "Joseph, King of Dreams," and "Spirit." Other notable credits include graphic design and commercial art for major corporations including Coca-Cola, McDonalds, Paramount, Warner Brothers, and PBS.
Table of Contents
Preface; Audience; Typographical Conventions; Code Samples; Tools; Using Code Examples; Comments and Questions; Acknowledgments; Chapter 1: Java in Review; 1.1 Core Concepts; 1.2 Syntax Issues; 1.3 Access Issues; 1.4 Common Mistakes; Chapter 2: The Final Story; 2.1 Final Constants; 2.2 Final Variables; 2.3 Final Parameters; 2.4 Final Collections; 2.5 Instance-Scoped Variables; 2.6 Final Classes; 2.7 Final Methods; 2.8 Conditional Compilation; 2.9 Using final as a Coding Standard; Chapter 3: Immutable Types; 3.1 Fundamentals; 3.2 Immutable Problems; 3.3 Immutable or Not; Chapter 4: Collections; 4.1 Collection Concepts; 4.2 Implementations; 4.3 Choosing a Collection Type; 4.4 Iterating Collections; 4.5 Collection Gotchas; Chapter 5: Exceptional Code; 5.1 Two Types of Exceptions; 5.2 When to Use Exceptions; 5.3 Finally for Closure; 5.4 Exceptional Traps; Chapter 6: Nested Classes; 6.1 Inner Classes; 6.2 Limited-Scope Inner Classes; 6.3 Static Nested Classes; 6.4 Double Nested Classes; 6.5 Nested Classes in Interfaces?; 6.6 Nested Interfaces; 6.7 Nested Class Rules; Chapter 7: All About Constants; 7.1 Substitution Constants; 7.2 Bit Fields; 7.3 Option Constants; 7.4 Constant Objects; 7.5 Constant Encapsulation; Chapter 8: Data Modeling; 8.1 The Requirements Document; 8.2 Natural Language Modeling; 8.3 Aspects of Well-Designed Data Models; 8.4 Reusable Data Constraints; 8.5 Persistence; Chapter 9: Practical Reflection; 9.1 The Basics; 9.2 Reflection and Greater Reflection; 9.3 Applying Reflection to MutableObject; 9.4 Performance of Reflection; 9.5 Reflection + JUnit = Stable Code; Chapter 10: Proxies; 10.1 What Is a Proxy?; 10.2 Two Kinds of Proxies; 10.3 Proxy Gotchas; Chapter 11: References in Four Flavors; 11.1 The Problem; 11.2 Java Reference Concepts; 11.3 The Java Reference Classes; 11.4 Practical Applications; 11.5 A Weak Listener; 11.6 When to Use References; Chapter 12: Tiger: JDK 1.5; 12.1 New Language Features; 12.2 Generics; 12.3 Other Improvements in Tiger; Colophon;