Preface; Book Structure; Conventions Used in This Book; Authors; Safari® Books Online; How to Contact Us; Second Edition Acknowledgments; Language; Chapter 1: Naming Conventions; 1.1 Class Names; 1.2 Interface Names; 1.3 Method Names; 1.4 Instance and Static Variable Names; 1.5 Parameter and Local Variable Names; 1.6 Generic Type Parameter Names; 1.7 Constant Names; 1.8 Enumeration Names; 1.9 Package Names; 1.10 Acronyms; Chapter 2: Lexical Elements; 2.1 Unicode and ASCII; 2.2 Comments; 2.3 Keywords; 2.4 Identifiers; 2.5 Separators; 2.6 Operators; 2.7 Literals; 2.8 Escape Sequences; 2.9 Unicode Currency Symbols; Chapter 3: Fundamental Types; 3.1 Primitive Types; 3.2 Literals for Primitive Types; 3.3 Floating-Point Entities; 3.4 Numeric Promotion of Primitive Types; 3.5 Wrapper Classes; 3.6 Autoboxing and Unboxing; Chapter 4: Reference Types; 4.1 Comparing Reference Types to Primitive Types; 4.2 Default Values; 4.3 Conversion of Reference Types; 4.4 Converting Between Primitives and Reference Types; 4.5 Passing Reference Types into Methods; 4.6 Comparing Reference Types; 4.7 Copying Reference Types; 4.8 Memory Allocation and Garbage Collection of Reference Types; Chapter 5: Object-Oriented Programming; 5.1 Classes and Objects; 5.2 Variable-Length Argument Lists; 5.3 Abstract Classes and Abstract Methods; 5.4 Static Data Members, Static Methods, Static Constants, and Static Initializers; 5.5 Interfaces; 5.6 Enumerations; 5.7 Annotation Types; Chapter 6: Statements and Blocks; 6.1 Expression Statements; 6.2 Empty Statement; 6.3 Blocks; 6.4 Conditional Statements; 6.5 Iteration Statements; 6.6 Transfer of Control; 6.7 Synchronized Statement; 6.8 Assert Statement; 6.9 Exception Handling Statements; Chapter 7: Exception Handling; 7.1 The Exception Hierarchy; 7.2 Checked/Unchecked Exceptions and Errors; 7.3 Common Checked/Unchecked Exceptions and Errors; 7.4 Exception Handling Keywords; 7.5 The Exception Handling Process; 7.6 Defining Your Own Exception Class; 7.7 Printing Information About Exceptions; Chapter 8: Java Modifiers; 8.1 Access Modifiers; 8.2 Other (Nonaccess) Modifiers; Platform; Chapter 9: Java Platform, SE; 9.1 Common Java SE API Libraries; Chapter 10: Development Basics; 10.1 Java Runtime Environment; 10.2 Java Development Kit; 10.3 Java Program Structure; 10.4 Command-Line Tools; 10.5 Classpath; Chapter 11: Memory Management; 11.1 Garbage Collectors; 11.2 Memory Management Tools; 11.3 Command-Line Options; 11.4 Resizing the JVM Heap; 11.5 Interfacing with the GC; Chapter 12: Basic Input and Output; 12.1 Standard Streams in, out, and err; 12.2 Class Hierarchy for Basic Input and Output; 12.3 File Reading and Writing; 12.4 Socket Reading and Writing; 12.5 Serialization; 12.6 Zipping and Unzipping Files; 12.7 File and Directory Handling; Chapter 13: NIO 2.0 Quicklook; 13.1 The Path Interface; 13.2 The Files Class; 13.3 Additional Features; Chapter 14: Concurrency; 14.1 Creating Threads; 14.2 Thread States; 14.3 Thread Priorities; 14.4 Common Methods; 14.5 Synchronization; 14.6 Concurrent Utilities; Chapter 15: Java Collections Framework; 15.1 The Collection Interface; 15.2 Implementations; 15.3 Collection Framework Methods; 15.4 Collections Class Algorithms; 15.5 Algorithm Efficiencies; 15.6 Comparator Interface; Chapter 16: Generics Framework; 16.1 Generic Classes and Interfaces; 16.2 Constructors with Generics; 16.3 Substitution Principle; 16.4 Type Parameters, Wildcards, and Bounds; 16.5 The Get and Put Principle; 16.6 Generic Specialization; 16.7 Generic Methods in Raw Types; Chapter 17: The Java Scripting API; 17.1 Scripting Languages; 17.2 Script Engine Implementations; 17.3 Setting Up Scripting Languages and Engines; Appendixes; Third-Party Tools; Development, CM, and Test Tools; Libraries; Integrated Development Environments; Web Application Platforms; Scripting Languages (JSR-223 compatible); UML Basics; Class Diagrams; Object Diagrams; Graphical Icon Representation; Connectors; Multiplicity Indicators; Role Names; Class Relationships; Sequence Diagrams;