Arrays
- Arrays
- Declaring Arrays
- Populating Arrays
- Accessing Arrays
- Array Length
- Array References
- Multidimensional Arrays
- Arrays of Arrays
- Copying Arrays
- For-Each loop
- Variable Arguments
Inheritance
- Inheritance Is...
- Declaring Inheritance
- Inheritance Hierarchy
- Access Modifiers Revistited
- Inherited Members
- Instances of a Subclass
- Role in Reuse
- The super Keyword
- Problems with Constructors
- Limiting Subclasses
- 'set' Methods in Constructors
- The Object Class
Commonly Overridden Methods
- Overiding Methods
- toString()
- toString() in Object
- Overriding toString()
- Comparing Objects
- Using = = vs. equals(..)
- Overriding equals(..)
- Complex Comparisons
- hashCode()
- Overriding hashCode()
Exceptions and Assertions
- What is an Exception?
- Benefits
- The Exception Class
- How to Work with Exceptions
- The try-catch-finally Statement
- Flow of Program Control
- Checked Exceptions
- Unchecked Exceptions
- Catching Multiple Exceptions
- Specifying Thrown Exceptions
- Rethrowing Exceptions
- Chaining Exceptions
- Creating Your Own Exception
- Assertions
- When to use Assertions
- Enabling Assertions
Interfaces and Polymorphism
- Casting Objects
- The instanceof Operator
- Abstract Classes
- Interface
- Comparable Interface
- Polymorphism
- Conditions for Polymorphism
- Covariant Return Types
- Refactoring
Collections, Generics, and Enumerations
- What are Collections?
- Arrays vs. Collections
- Main Collections Interfaces
- java.util.Collection
- Main Collection Methods
- Sets
- java.util.List
- java.util.Queue
- Iteration on a collection
- Iterator vs. For-Each Loop
- Maps
- java.util.Map
- java.util.SortedMap
- Collections Implementations
- Generics and Collections
- Collections and Primitive Types
- "Wrapper" Classes
- Autoboxing
- Enumerated Types
Java Logging API and Useful Java Classes
- Java Logging API
- Control Flow of Logging
- Logging Levels
- Logging Handlers
- Logging Formatters & Log Manager
- Logging Configuration File
- Logging Filters
- java.lang.StringBuilder
- java.util.StringTokenizer
- java.util.Arrays and java.util.Collections
- java.util.Random
- java.util.Date
- GregorianCalendar and Calendar
- Formatting
Input and Output
- Streams
- Input Stream
- Output Stream
- "Chained" Streams
- The File Class
- Reader and Writer
- Buffers
- Channels
- Serialization
- Serializing Object State
- Avoiding Serialization Problems
- serialVersionUID
- Options to Write Files