Getting Started with Java: Java goals and principles; Installing and using the Java SE; JAR files; Using an IDE
Java Language Fundamentals: Basic syntax rules; Defining classes; Defining and using packages; Declaring and using variables; Useful Java classes; Wrapper classes
Operators and Flow Control: Survey of common operators; Decision making; Looping constructs; for-each style loops
Defining and Using Classes: Essential concepts; Defining a class; Creating and using objects; Initialization; Using the static keyword
Arrays: Declaring and using arrays; Traversing arrays; Using the Arrays class; Multi-dimensional arrays
Additional Language Features: Autoboxing / unboxing; Varargs; Type-safe enumerations; Static imports
Useful Java SE Classes and Techniques: The Console class; The StringBuilder class; Formatting techniques; Regular expressions
Inheritance: Overview of inheritance; Defining superclasses and subclasses; Polymorphism; Abstract classes and methods; Final classes and methods
Interfaces: Overview of interfaces; Defining and implementing interfaces; Using interfaces in client code
Collections and Generics: Overview of collections and generics; The need for generics; Using collections; Defining generic classes; Defining generic methods
Exceptions and Assertions: Overview of exception handling; Throwing and catching exceptions; Standard exception classes; Defining new exception classes; Working with assertions
Inner Classes: Overview of inner classes; Regular inner classes; Method-local inner classes; Anonymous inner classes; Static nested classes
File Handling: Overview of working with files; Reading and writing text files; Reading and writing binary files; Serialization
Multithreading: Creating multiple threads; Synchronizing threads; Synchronization classes; Concurrency API
Accessing Databases using JDBC: JDBC drivers and connections; Statements and results; Obtaining metadata; Additional techniques