Please note that this list of topics is based on our standard course offering, evolved from typical industry uses and trends. We will work with you to tune this course and level of coverage to target the skills you need most.
Java: A First Look
1. The Java Platform
• Introduce the Java Platform
• Explore the Java Standard Edition
• Discuss the lifecycle of a Java Program
• Explain the responsibilities of the JVM
• Executing Java programs
• Garbage Collection
• Documentation and Code Reuse
2. Using the JDK
• Explain the JDK’s file structure
• Use the command line compiler to compile a Java class
• Use the command line Java interpreter to run a Java application class
3. The Eclipse Paradigm
• Become more familiar with Eclipse workbench concepts
• Explore the paradigm used by Eclipse, consisting of editors, views and perspectives in detail
• Introduce some commonly used views
• Explain Perspectives
Getting Started with Java
4. Writing a Simple Class
• Write a Java class that does not explicitly extend another class
• Define instance variables for a Java class
• Create object instances
• Primitives vs Object References
• Implement a main method to create an instance of the defined class
• Java keywords and reserved words
5. Adding Methods to the Class
• Write a class with accessor methods to read and write instance variables
• Write a constructor to initialize an instance with data
• Write a constructor that calls other constructors of the class to benefit from code reuse
• Use the this keyword to distinguish local variables from instance variables
Essential Java Programming
6. Language Statements
• Arithmetic operators
• Operators to increment and decrement numbers
• Comparison operators
• Logical operators
• Return type of comparison and logical operators
• Use for loops
• Swtch Expressions
• Switch Expressions and yield
7. Using Strings and Text Blocks
• Create an instance of the String class
• Test if two strings are equal
• Perform a case-insensitive equality test
• Contrast String, StringBuffer, and StringBuilder
• Compact Strings
• Text Blocks
• Unicode support
8. Fields and Variables
• Discuss Block Scoping Rules
• Distinguish between instance variables and method variables within a method
• Explain the difference between the terms field and variable
• List the default values for instance variables
• Final and Static fields and methods
9. Specializing in a Subclass
• Constructing a class that extends another class
• Implementing equals and toString
• Writing constructors that pass initialization data to parent constructor
• Using instanceof to verify type of an object reference
• Pattern matching for instanceof
• Overriding subclass methods
• Safely casting references to a more refined type
Java Developer’s Toolbox
10. Using Arrays
• Declaring an array reference
• Allocating an array
• Initializing the entries in an array
• Writing methods with a variable number of arguments
11. Records
• Data objects in Java
• Introduce records as carrier of immutable data
• Defining records
• The Canonical constructor
• Compact constructors
12. Java Packages and Visibility
• Use the package keyword to define a class within a specific package
• Discuss levels of accessibility/visibility
• Using the import keyword to declare references to classes in a specific package
• Using the standard type naming conventions
• Visibility in the Java Modular System
• Correctly executing a Java application class
• The Java Modular System
• Defining Modules
13. Utility Classes
• Introduce the wrapper classes
• Explain Autoboxing and Unboxing
• Converting String representations of primitive numbers into their primitive types
• Defining Enumerations
• Using static imports
• Deprecating classes and methods
Object Oriented Development
14. Inheritance and Polymorphism
• Write a subclass with a method that overrides a method in the superclass
• Group objects by their common supertype
• Utilize polymorphism
• Cast a supertype reference to a valid subtype reference
• Use the final keyword on methods and classes to prevent overriding
15. Interfaces and Abstract Classes
• Define supertype contracts using abstract classes
• Implement concrete classes based on abstract classes
• Define supertype contracts using interfaces
• Implement concrete classes based on interfaces
• Explain advantage of interfaces over abstract classes
• Explain advantage of abstract classes over interfaces
Exception Handling
16. Introduction to Exception Handling
• Introduce the Exception architecture
• Defining a try/catch blocks
• Checked vs Unchecked exceptions
17. Exceptions
• Defining your own application exceptions
• Automatic closure of resources
• Suppressed exceptions
• Handling multiple exceptions in one catch
• Enhanced try-with-resources
• Helpful NullPointerException(s)
Advanced Java Programming
18. Building Java Applications
• Explain the steps involved in building applications
• Define the build process
• Introduce build scripts
• Explain the standard folder layout
• Resolving project dependencies
• Tutorial: Importing code Using Maven
19. Introduction to Generics
• Generics and Subtyping
• Bounded Wildcards
• Generic Methods
• Legacy Calls To Generics
• When Generics Should Be Used
20. Introducing Lambda Expressions and Functional Interfaces
• Understanding the concept of functional programming
• Understanding functional interfaces
• Lambda’s and type inference
21. Working with Lambda Expressions
• Writing lambda expressions
• Explore the difference between anonymous classes and lambda expressions
• Consumer, Predicate and Function interfaces
Working with Collections
22. Collections
• Provide an overview of the Collection API
• Review the different collection implementations (Set, List and Queue)
• Explore how generics are used with collections
• Examine iterators for working with collections
23. Using Collections
• Collection Sorting
• Comparators
• Using the Right Collection
• Lambda expressions in Collections
Bonus Topics / Time Permitting
These topics will be included in your course materials but may or may not be presented during the live class depending on the pace of the course and attendee skill level and participation.
24. Sealed Classes
• Introduce sealed classes
• The sealed and permits modifier
• Sealed interfaces
• Sealed classes and pattern matching
25. Streams
• Understanding the problem with collections in Java
• Thinking of program solutions in a declarative way
• Use the Stream API to process collections of data
• Understand the difference between intermediate and terminal stream operations
• Filtering elements from a Stream
• Finding element(s) within a Stream
• Collecting the elements from a Stream into a List
26. Collectors
• Using different ways to collect the items from a Stream
• Grouping elements within a stream
• Gathering statistics about numeric property of elements in a stream