Session: Java: A First Look
Lesson: The Java Platform
- Java Platforms
- Lifecycle of a Java Program
- Responsibilities of JVM
- Documentation and Code Reuse
- Java Platforms
- Lifecycle of a Java Program
- Responsibilities of JVM
- Documentation and Code Reuse
Lesson: Using the JDK
- Setting Up Environment
- Locating Class Files
- Compiling Package Classes
- Source and Class Files
- Java Applications
- Setting Up Environment
- Locating Class Files
- Compiling Package Classes
- Source and Class Files
- Java Applications
Lesson: The Eclipse Paradigm
- Workbench and Workspace
- Views
- Editors
- Perspectives
- Projects
- Workbench and Workspace
- Views
- Editors
- Perspectives
- Projects
Session: Getting Started with Java
Lesson: Writing a Simple Class
- Classes in Java
- Class Modifiers and Types
- Class Instance Variables
- Primitives vs. Object References
- Creating Objects
- Classes in Java
- Class Modifiers and Types
- Class Instance Variables
- Primitives vs. Object References
- Creating Objects
Lesson: Adding Methods to the Class
- Passing Parameters Into Methods
- Returning a Value From a Method
- Overloaded Methods
- Constructors
- Optimizing Constructor Usage
- Passing Parameters Into Methods
- Returning a Value From a Method
- Overloaded Methods
- Constructors
- Optimizing Constructor Usage
Session: OO Concepts
Lesson: Object-Oriented Programming
- Real-World Objects
- Classes and Objects
- Object Behavior
- Methods and Messages
- Real-World Objects
- Classes and Objects
- Object Behavior
- Methods and Messages
Lesson: Inheritance, Abstraction, and Polymorphism
- Encapsulation
- Inheritance
- Method Overriding
- Polymorphism
- Encapsulation
- Inheritance
- Method Overriding
- Polymorphism
Session: Essential Java Programming
Lesson: Language Statements
- Operators
- Comparison and Logical Operators
- Looping
- Continue and Break Statements
- The switch Statement
- The for-each() Loop
- Operators
- Comparison and Logical Operators
- Looping
- Continue and Break Statements
- The switch Statement
- The for-each() Loop
Lesson: Using Strings
- Create an instance of the String class
- Test if two strings are equal
- Get the length of a string Parse a string for its token components
- Perform a case-insensitive equality test
- Build up a string using StringBuffer
- Contrast String, StringBuffer, and StringBuilder
- Create an instance of the String class
- Test if two strings are equal
- Get the length of a string Parse a string for its token components
- Perform a case-insensitive equality test
- Build up a string using StringBuffer
- Contrast String, StringBuffer, and StringBuilder
Lesson: Specializing in a Subclass
- Extending a Class
- Casting
- The Object Class
- Default Constructor
- Implicit Constructor Chaining
- Extending a Class
- Casting
- The Object Class
- Default Constructor
- Implicit Constructor Chaining
Lesson: Fields and Variables
- Instance vs. Local Variables: Usage Differences
- Data Types
- Default Values
- Block Scoping Rules
- Final and Static Fields
- Static Methods
- Instance vs. Local Variables: Usage Differences
- Data Types
- Default Values
- Block Scoping Rules
- Final and Static Fields
- Static Methods
Lesson: Using Arrays
- Arrays
- Accessing the Array
- Multidimensional Arrays
- Copying Arrays
- Variable Arguments
- Arrays
- Accessing the Array
- Multidimensional Arrays
- Copying Arrays
- Variable Arguments
Lesson: Local-Variable Type Inference
- Type inference
- Infering Types of Local Variables
- The var Reserved Type name
- Benefits of Using var
- Backward Compatibilty
- Type inference
- Infering Types of Local Variables
- The var Reserved Type name
- Benefits of Using var
- Backward Compactibilty
Lesson: Java Packages and Visibility
- Class Location of Packages
- The Package Keyword
- Importing Classes
- Executing Programs
- Visibility in the Modular System
- Java Naming Conventions
- Class Location of Packages
- The Package Keyword
- Importing Classes
- Executing Programs
- Visibility in the Modular System
- Java Naming Conventions
Session: Object Oriented Development
Lesson: Inheritance and Polymorphism
- Polymorphism: The Subclasses
- Upcasting vs. Downcasting
- Calling Superclass Methods From Subclass
- The final Keyword
- Polymorphism: The Subclasses
- Upcasting vs. Downcasting
- Calling Superclass Methods From Subclass
- The final Keyword
Lesson: Interfaces and Abstract Classes
- Separating Capability from Implementation
- Abstract Classes
- Implementing an Interface
- Abstract Classes vs. Interfaces
- Separating Capability from Implementation
- Abstract Classes
- Implementing an Interface
- Abstract Classes vs. Interfaces
Session: Exception Handling
Lesson: Introduction to Exception Handling
- Exception Architecture
- Throwing Exceptions
- Checked vs. Unchecked Exceptions
- Exception Architecture
- Throwing Exceptions
- Checked vs. Unchecked Exceptions
Lesson: Exceptions
- Handling Multiple Exceptions
- Automatic Closure of Resources
- Creating Your Own Exceptions
- Handling Multiple Exceptions
- Automatic Closure of Resources
- Creating Your Own Exceptions
Session: Java Developer's Toolbox
Lesson: Utility Classes
- Wrapper Classes
- Autoboxing/Unboxing
- Enumeration Syntax
- Using Static imports
- Wrapper Classes
- Autoboxing/Unboxing
- Enumeration Syntax
- Using Static imports
Lesson: Java Date/Time
- The Date and Calendar classes
- Introduce the new Date/Time API
- LocalDate, LocalDateTime, etc.
- Formatting Dates
- Working with time zones
- Manipulate date/time values
- The Date and Calendar classes
- Introduce the new Date/Time API
- LocalDate, LocalDateTime, etc.
- Formatting Dates
- Working with time zones
- Manipulate date/time values
Session: Advanced Java Programming
Lesson: Introduction to Generics
- Generics and Subtyping
- Bounded Wildcards
- Generic Methods
- Legacy Calls To Generics
- When Generics Should Be Used
- Generics and Subtyping
- Bounded Wildcards
- Generic Methods
- Legacy Calls To Generics
- When Generics Should Be Used
Lesson: Lambda Expressions and Functional Interface
- Lambda Expression Syntax
- Functional Interfaces
- Type Inference in Java 8
- Method references
- Lambda Expression Syntax
- Functional Interfaces
- Type Inference in Java 8
- Method references
Session: Working with Collections
Lesson: Collections
- Characterizing Collections
- Collection Interface Hierarchy
- The Set, List and Queue Interfaces
- Map Interfaces
- Characterizing Collections
- Collection Interface Hierarchy
- The Set, List and Queue Interfaces
- Map Interfaces
Lesson: Using Collections
- Collection Sorting
- Comparators
- Using the Right Collection
- Lambda expressions in Collections
- Collection Sorting
- Comparators
- Using the Right Collection
- Lambda expressions in Collections
Session: Stream API
Lesson: Streams
- Processing Collections of data
- The Stream interface
- Reduction and Parallelism
- Filtering collection data
- Sorting Collection data
- Map collection data
- Find elements in Stream
- Numeric Streams
- Create infinite Streams
- Sources for using Streams
- Processing Collections of data
- The Stream interface
- Reduction and Parallelism
- Filtering collection data
- Sorting Collection data
- Map collection data
- Find elements in Stream
- Numeric Streams
- Create infinite Streams
- Sources for using Streams
Lesson: Collectors
- Creating Collections from a Stream
- Group elements in the Stream
- Multi-level grouping of elements
- Partitioning Streams
- Creating Collections from a Stream
- Group elements in the Stream
- Multi-level grouping of elements
- Partitioning Streams
Session: The Java Module System
Lesson: Introduction to the Module System
- Introduce Project Jigsaw
- Classpath and Encapsulation
- The JDK internal APIs
- Java 9 Platform modules
- Defining application modules
- Define module dependencies
- Implicit dependencies
- Implied Readability
- Exporting packages
- Introduce Project Jigsaw
- Classpath and Encapsulation
- The JDK internal APIs
- Java 9 Platform modules
- Defining application modules
- Define module dependencies
- Implicit dependencies
- Implied Readability
- Exporting packages
Additional Topics: Time Permitting
Lesson: Formatting Strings
- String.format
- System.out.printf
- The Formatter class
- Using the formatting syntax
- String.format
- System.out.printf
- The Formatter class
- Using the formatting syntax
Lesson: Introduction to Annotations
- Annotations Overview
- Working with Java Annotations
- Annotations Overview
- Working with Java Annotations
Lesson: Java 12 and beyond
- Provide an overview of changes since Java 11
- Introduce Preview Features
- Records (Java 14)
- Switch Expressions (Java 12, Java 13, Java 14)
- Text Blocks (Java 13, Java 14)
- Helpful NullPointerExceptions (Java 14)
- Pattern Matching for instanceof (Java 14)
- Provide an overview of changes since Java 11
- Introduce Preview Features
- Records (Java 14)
- Switch Expressions (Java 12, Java 13, Java 14)
- Text Blocks (Java 13, Java 14)
- Helpful NullPointerExceptions (Java 14)
- Pattern Matching for instanceof (Java 14