EIEIOTECHNOVATION
← Training programmes

EIEIO / PROGRAMMING & DEVELOPMENT

Java Programming SE17

Course outline

5 days

Duration

Java Programming SE17

5 days

Day 1

9am – 10.15am

  • Java Fundamentals
  • The History and Philosophy of Java
  • Object-Oriented Programming
  • The Java Development Kit
  • A First Simple Program
  • Handling Syntax Errors
  • A Second Simple Program

Morning Tea-break

10.15am – 10.30am

10.30am – 12pm

  • Another Data Type
  • Two Control Statements
  • Create Blocks of Code
  • Semicolons and Positioning
  • Indentation Practices
  • The Java Keywords
  • Identifiers in Java
  • The Java Class Libraries

Lunch

12pm – 1pm

1pm – 3.15pm

  • Introducing Data Types and Operators
  • Why data Types Are Important
  • Java’s Primitive Types
  • The Boolean Type
  • Literals
  • A Close Look at Variables
  • The Scope and Lifetime of Variables
  • Operators
  • Arithmetic Operators
  • Relational and Logical Operators
  • The Assignment Operator
  • Shorthand Assignments
  • Type Conversion in Assignments
  • Casting Incompatible Types
  • Operator Precedence
  • Expressions

Afternoon Tea-break

3.15pm – 3.30pm

3.30pm – 5pm

  • Program Control Statements
  • Input Characters from the Keyboard
  • The if Statement
  • Nested ifs
  • The if-else-if Ladder
  • The switch Statement
  • Nested switch Statements
  • The for Loop
  • Some Variations on the for Loop
  • The Infinite Loop
  • Loops with No Body
  • Declaring Loop Control Variables Inside the for Loop
  • The Enhanced for Loop
  • The while Loop
  • The do-while Loop
  • Use break to Exit a Loop
  • Use break as a Form of goto
  • Use continue
  • Nested Loop

Day 2

9am – 10.15am

  • Introducing Classes, Objects, and Methods
  • Class Fundamentals
  • How Objects Are Created
  • Reference Variables and Assignment
  • Methods
  • Returning from a Method

Morning Tea-break

10.15am – 10.30am

10.30am – 12pm

  • Returning a Value
  • Constructors
  • Parameterized Constructors
  • Adding a Constructor to the Vehicle Class
  • The new Operator Revisited
  • Garbage Collection
  • The this keyword

Lunch

12pm – 1pm

1pm – 3.15pm

  • More Data Types and Operators
  • Arrays
  • Multidimensional Arrays
  • Alternative Array Declaration Syntax
  • Assigning Array References
  • Using the length Member
  • The For-Each Style for Loop
  • Strings
  • Using Command-Line Arguments
  • Using Type Inference with Local Variables
  • The Bitwise Operators
  • The ? Operator

Afternoon Tea-break

3.15pm – 3.30pm

3.30pm – 5pm

  • A Close Look at Methods and Classes
  • Controlling Access to Class Members
  • Pass Objects to Methods
  • Returning Objects
  • Method Overloading
  • Overloading Constructors
  • Recursion
  • Understanding static
  • Introducing Nested and Inner Classes
  • varargs: Variable-Length Arguments

Day 3

9am – 10.15am

  • Inheritance
  • Inheritance Basics
  • Member Access and Inheritance
  • Constructors and Inheritance
  • Using super to Call Superclass Constructors
  • Using super to Access Superclass Members
  • Creating a Multilevel Hierarchy

Morning Tea-break

10.15am – 10.30am

10.30am – 12pm

  • When Are Constructors Executed?
  • Superclass References and Subclass Objects
  • Method Overriding
  • Overridden Methods Support Polymorphism
  • Why Override Methods?
  • Using Abstract Methods?
  • Using Abstract Classes
  • Using final
  • The Object Class

Lunch

12pm – 1pm

1pm – 3.15pm

  • Packages and Interfaces
  • Packages
  • Packages and Member Access
  • Understanding Protected Members
  • Importing Packages
  • Java’s Class Library Is Contained in Packages
  • Interfaces
  • Implementing Interfaces
  • Using Interfaces References
  • Variables in Interfaces
  • Interfaces Can Be Extended
  • Default Interface Methods
  • Use static Methods in an Interface
  • Private Interface Methods
  • Final Thoughts on Packages and Interfaces

Afternoon Tea-break

3.15pm – 3.30pm

3.30pm – 5pm

  • Exception Handling
  • The Exception Hierarchy
  • Exception Handling Fundamentals
  • The Consequences of an Uncaught Exception
  • Using Multiple catch Statements
  • Catching Subclass Exceptions
  • Try Blocks Can Be Nested
  • Throwing and Exception
  • A Closer Look at Throwable
  • Using finally
  • Using throws
  • Three Additional Exception Features
  • Java’s Built-in Exceptions
  • Creating Exception Subclasses

Day 4

9am – 10.15am

  • Using I/O
  • Java’s I/O is Built upon Streams
  • Byte Streams and Character Streams
  • The Byte Stream Classes
  • The Character Stream Classes
  • The Predefined Streams
  • Using the Byte Streams

Morning Tea-break

10.15am – 10.30am

10.30am – 12pm

  • Reading and Writing Files using Byte Streams
  • Automatically Closing a File
  • Reading and Writing Binary File
  • Random-Access Files
  • Using Java’s Character-Based Streams
  • File I/O Using Character Streams
  • Using Java’s Type Wrappers to Convert Numeric to Strings

Lunch

12pm – 1pm

1pm – 3.15pm

  • Multithreaded Programming
  • Multithreaded Fundamentals
  • The Thread Class and Runnable Interface
  • Creating a Thread
  • Creating Multiple Threads
  • Determining When a Thread Ends
  • Thread Priorities
  • Synchronization
  • Using synchronized Statement
  • Thread Communication Using notify(), wait(), and notifyAll()
  • Suspending, Resuming, and Stopping Threads

Afternoon Tea-break

3.15pm – 3.30pm

3.30pm – 5pm

  • Enumerations, Autoboxing, Static Import, and Annotations
  • Enumerations
  • Java Enumerations Are Class Types
  • The values() and valueOf() Methods
  • Constructors, Methods, Instance Variables, Enumerations
  • Enumerations Inherit Enum
  • Autoboxing
  • Type Wrappers
  • Autoboxing Fundamentals
  • Autoboxing and Methods
  • Autoboxing/Unboxing Occurs in Expressions
  • Static Import
  • Annotations

Day 5

9am – 10.15am

  • Generics
  • Generic Fundamentals
  • A Simple Generic Example
  • Bounded Types
  • Using Wildcard Arguments
  • Bounded Wildcards
  • Generic Methods
  • Generic Constructors
  • Generic Interfaces

Morning Tea-break

10.15am – 10.30am

10.30am – 12pm

  • Raw Types and Legacy Code
  • Type Inference with the Diamond Operator
  • Local Variable Type Inference and Generics
  • Erasure
  • Ambiguity Errors
  • Some Generic Restrictions
  • Continuing Your Study of Generics

Lunch

12pm – 1pm

1pm – 3.15pm

  • Lambda Expressions and Method References
  • Introducing Lambda Expressions
  • Block Lambda Expressions
  • Generic Functional Interfaces
  • Lambda Expressions and Variable Capture
  • Throw an Exception from Within a Lambda Expression
  • Methods References
  • Constructor References
  • Predefined Functional Interfaces

Afternoon Tea-break

3.15pm – 3.30pm

3.30pm – 5pm

  • New Features in Java 17
  • Restore or Rebuild the "Always-Strict Floating-Point" Semantics
  • Enhanced faster the "pseudo-Random" Number Generators
  • New macOS rendering pipelines
  • macOS/AArch64 Port
  • Dismiss the Applet API for Removal
  • JDK Internals Encapsulate strongly
  • Switch Pattern Matching (Preview)
  • Activation of the Removal RMI
  • Generate sealed Classes
  • Removal of the Experimental AOT and JIT Compiler
  • Remove the Security Manager.
  • Foreign Functions and Memory API (Incubator)
  • Vector API (Second Incubator)
  • Deserialization Filters Based on Context (content-specific)

Programme scope, delivery arrangements and suitability are confirmed during enquiry.