1 Declarations and Access Control
Identifiers & JavaBeans (Objectives 1.3 and 1.4)
Declare Classes (Exam Objective 1.1)
Class Declarations and Modifiers
Exercise 1-1: Creating an Abstract Superclass and Concrete Subclass
Declare Interfaces (Exam Objectives 1.1 and 1.2)
Declare Class Members (Objectives 1.3 and 1.4)
Encapsulation (Exam Objective 5.1)
Inheritance, Is-A, Has-A (Exam Objective 5.5)
Polymorphism (Exam Objective 5.2)
Overriding / Overloading (Exam Objectives 1.5 and 5.4)
Reference Variable Casting (Objective 5.2)
Implementing an Interface (Exam Objective 1.2)
Legal Return Types (Exam Objective 1.5)
Constructors and Instantiation (Exam Objectives 1.6, 5.3, and 5.4)
Determine Whether a Default Constructor Will Be Created
Coupling and Cohesion (Exam Objective 5.1)
Literals, Assignments, and Variables (Exam Objectives 1.3 and 7.6)
Literal Values for All Primitive Types
Exercise 3-1: Casting Primitives
Using a Variable or Array Element That Is Uninitialized and Unassigned
Local (Stack, Automatic) Primitives and Objects
Passing Variables into Methods (Objective 7.3)
Passing Object Reference Variables
Does Java Use Pass-By-Value Semantics?
Array Declaration, Construction, and Initialization (Exam Objective 1.3)
Using Wrapper Classes and Boxing (Exam Objective 3.1)
An Overview of the Wrapper Classes
Using Wrapper Conversion Utilities
Overloading (Exam Objectives 1.5 and 5.4)
Garbage Collection (Exam Objective 7.4)
Overview of Memory Management and Garbage Collection
Overview of Java's Garbage Collector
Writing Code That Explicitly Makes Objects Eligible for Collection
Exercise 3-2: Garbage Collection Experiment
Java Operators (Exam Objective 7.6)
5 Flow Control, exceptions, and Assertions
if and switch Statements (Exam Objective 2.1)
Exercise 5-1: Creating a switch-case Statement
Loops and Iterators (Exam Objective 2.2)
Exercise 5-2: Creating a Labeled while Loop
Handling Exceptions (Exam Objectives 2.4 and 2.5)
Catching an Exception Using try and catch
Propagating Uncaught Exceptions
Exercise 5-3: Propagating and Catching an Exception
Handling an Entire Class Hierarchy of Exceptions
Exception Declaration and the Public Interface
Exercise 5-4: Creating an Exception
Common Exceptions and Errors (Exam Objective 2.6)
Working with the Assertion Mechanism (Exam Objective 2.3)
Using Assertions Appropriately
6 Strings, I/O, Formatting, and Parsing
String, StringBuilder, and StringBuffer (Exam Objective 3.1)
Important Facts About Strings and Memory
Important Methods in the String Class
The StringBuffer and StringBuilder Classes
Important Methods in the StringBuffer and StringBuilder Classes
File Navigation and I/O (Exam Objective 3.2)
Serialization (Exam Objective 3.3)
Dates, Numbers, and Currency (Exam Objective 3.4)
Working with Dates, Numbers, and Currencies
Parsing, Tokenizing, and Formatting (Exam Objective 3.5)
Locating Data via Pattern Matching
Formatting with printf() and format()
Overriding hashCode() and equals() (Objective 6.2)
Collections (Exam Objective 6.1)
So What Do You Do with a Collection?
Using the Collections Framework (Objectives 6.3 and 6.5)
Sorting Collections and Arrays
Navigating (Searching) TreeSets and TreeMaps
Generic Types (Objectives 6.3 and 6.4)
Mixing Generic and Non-generic Collections
Coding a "Regular" Inner Class
Referencing the Inner or Outer Instance from Within the Inner Class
What a Method-Local Inner Object Can and Can't Do
Plain-Old Anonymous Inner Classes, Flavor One
Plain-Old Anonymous Inner Classes, Flavor Two
Argument-Defined Anonymous Inner Classes
Instantiating and Using Static Nested Classes
Defining, Instantiating, and Starting Threads (Objective 4.1)
Thread States and Transitions (Objective 4.2)
Exercise 9-1: Creating a Thread and Putting It to Sleep
Thread Priorities and yield( )
Synchronizing Code (Objective 4.3)
Exercise 9-2: Synchronizing a Block of Code
Thread Interaction (Objective 4.4)
Using notifyAll( ) When Many Threads May Be Waiting
Using the javac and java Commands (Exam Objectives 7.1, 7.2, and 7.5)
Launching Applications with java