Java Developer (JAVADEV) – Outline

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