Detailed Course Outline
Course Introduction
- Administration and Course Materials
- Course Structure and Agenda
- Delegate and Trainer Introductions
Session 1: PLATFORM, APP STRUCTURE, & BASIC IO
- The Java language
- The Java platform
- App structure incl. modules, packages, and classes (brief)
- The main method
- Reading from stdin and writing to stdout
- Reading from and writing to a text file
- Compilation and execution
Session 2: CLASSES & OBJECTS
- What is an object
- What is a class
- Object-oriented apps
- Classes
- Fields
- Constructors
- Methods
- Objects
- Instantiation
- Getting and setting fields
- Calling methods
Session 3: VARIABLES & STANDARD DATA TYPES
- Instance fields
- Default values
- Local variables incl. parameters
- Primitives
- Literals
- Default types
- Casting
- References
- Arrays (brief)
- Strings (brief)
- Primitive wrappers
- Constants
- Type inference
- Varargs
- Naming conventions
Session 4: DECISIONS & LOOPS
- Relational and conditional operators
- If statements
- Switch statements
- The ternary operator
- While loops
- For loops (both kind)
- Branching statements (break, continue, return)
Session 5: ESSENTIAL COLLECTIONS
- What is an array
- List vs. array
- Map vs. list
- Generic classes (brief)
- Arrays
- Declaration and initialisation
- Setting and getting elements
- Sizing
- Iterating
- Multi-dimensional arrays
- Command line arguments
- The ArrayList and HashMap classes
- Imports
- Adding elements incl. autoboxing
- Membership testing
- Accessing elements
- Changing elements
- Removing elements
- Sizing
- Iterating
Session 6: STATIC MEMBERS & ENUMS
- What does it mean to be static
- Static fields
- Static methods
- Static context
- Static imports
- Enums
Session 7: NUMBERS & MATHS
- Strings to numbers
- Arithmetic and unary operators
- The Math class
- The BigDecimal class
- Number formatting
Session 8: STRINGS & REGEX
- What is a String
- Immutable objects
- The String Pool
- Strings
- Creation
- Escape characters
- Concatenation
- Format Strings
- Length
- Transformative methods
- Search methods
- Comparative methods
- Java 11 methods
- StringBuilder
- Pattern matching
- Regular expressions
- The Pattern and Matcher classes
Session 9: EXCEPTION HANDLING
- What is an exception
- Checked vs. unchecked exceptions
- Exceptions and the call stack
- Try, catch, and finally
- Handling multiple exception types
- Try with resources
- Throwing exceptions
- Custom exceptions (brief)
Session 10: ENCAPSULATION
- What is encapsulation
- Access modifiers
- Private fields and public methods
- Getters and setters
- Constructors (for controlling instantiation)
- The this keyword
Session 11: COMPOSITION & AGGREGATION
- What is composition
- What is aggregation
- Composite associations
- Aggregate associations
- Constructor injection (mandatory)
- Setter injection (optional)
- The problem with getter methods (refs. vs. copies)
Session 12: INHERITANCE, ABSTRACTION, & POLYMORPHISM
- What is inheritance
- The purpose of inheritance
- Extending a superclass
- Shadowing
- Overriding
- Subclass constructors
- The super keyword
- Inheritance polymorphism
- Upcasting and downcasting
- The instanceof operator
- Final classes and methods
- The Object class incl. toString, hashCode, and equals (brief)
- What is abstraction
- The purpose of abstraction
- Abstract classes and methods
- Extending an abstract class
- Interfaces
- Implementing one or more interfaces
- Extending and implementing
- Interface polymorphism
- Interface default, static, and private methods
Session 13: MODERN FILE IO
- What is a stream
- The different types of stream
- The Path class
- Reading all bytes/lines from a file
- Writing all bytes/lines to a file
- Reading from a file using a buffered stream
- Writing to a file using a buffered stream
- Parsing a file using a Scanner
Session 14: MODULES
- What is a module
- Module descriptor
- Module requires and exports
- Compiling a module
- Using jdeps to determine a module's dependencies
- Compiling a module that requires other modules
- Executing a module
- Using jlink to build a custom JRE
Session 15: BASIC JDBC
- What is JDBC
- Loading the driver
- Establishing a connection
- AutoCommit
- Transaction management
- Creating a statement
- PreparedStatement
- CallableStatementt
- Batch updates
- Executing a query/update
- Processing a ResultSet
- Type
- Concurrency
- Holdability
- Closing resources