EIEIOTECHNOVATION
← Training programmes

EIEIO / PROGRAMMING & DEVELOPMENT

Fundamentals of Java

Course outline

2 days

Target Participants

The primary target audience for this course is software developers / programmers.

  • Students new to Spring Boot
  • Students new & existing to the Spring Framework
  • You should NOT take this course if you have never used Java before.

Program Prerequisites

  • Students should be familiar with the Java programming language
  • Web Development Experience (HTML / CSS / JavaScript)
  • A computer that can run Spring Tools Suite
  • Familiar with MVC

Course Content

  • Writing Java Programs
  • What is a Java Program
  • Writing the Source Code
  • Compiling the Source Code
  • Running the Compiled Code
  • Installing and configuring Eclipse IDE
  • Downloading and Installing Maven
  • Testing Maven Installation
  • Data Types
  • What is a Data Types
  • What is an Identifier
  • Primitive Data Types in Java
  • Special Floating-Point Numbers
  • Rounding Modes
  • Number Objects
  • String Objects
  • Format data for output
  • Wrapper Classes
  • Autoboxing and Unboxing
  • Beware of Null Values
  • Overloaded Methods
  • Comparison Operators
  • Collections
  • Operators
  • What is an Operator
  • Assignment Operator
  • Arithmetic Operator
  • String Concatenation Operator
  • Relational Operators
  • Boolean Logical Operators
  • Statements
  • What is a Statement and Type of Statements
  • A Block Statement
  • The if-else Statement
  • The switch Statement
  • Strings in Switch
  • The for Statement
  • The for-each Statement
  • The while Statement
  • The do-while Statement
  • The break Statement
  • The continue Statement
  • Diamond Syntax
  • Classes and Objects
  • What is a Class
  • Declaring Fields in a Class
  • Creating Instances of a Class
  • The null Reference Type
  • Using Dot Notation to Access Fields of a Class
  • Default Initialization of Field
  • Access Level Modifiers for a Class
  • Import Declaration
  • Declaring Methods of a Class
  • Local Variables
  • Instance Method and Class Method
  • Invoking a Method
  • Access Level for Class Members
  • The Object and Objects Classes
  • The Object Class
  • What is the Class of an Object
  • Computing Hash Code of an Object
  • Comparing Objects for Equality
  • String Representation of an Object
  • Cloning Object
  • Finalizing an Object
  • Immutable Objects
  • The Objects Class
  • Java Package
  • Package declaration
  • Sub-Packages in Java
  • Naming Convention
  • Importing Java Package
  • Access Modifier
  • Java Archive (JAR) Files
  • Exception Handling
  • What is an Exception
  • Using a try-catch Block
  • Exception Class Hierarchy
  • Arranging Multiple catch Blocks
  • Throwing an Exception
  • Creating an Exception Class
  • The finally Block
  • The try-with-resources Block
  • Multi-Catch Exceptions
  • Re-throwing Exceptions
  • Try with Resources
  • AutoCloseable Interface
  • Arrays Strings Dates Time
  • What is an Array
  • Arrays are Objects
  • Accessing Array Elements
  • Length of an Array
  • Multi-Dimensional Arrays
  • Enhanced for Loop for Arrays
  • Runtime Array Bounds Check What is a String
  • String Literals
  • Creating String Objects
  • String Operators
  • Comparing Two Strings
  • StringBuilder and StringBuffer
  • The Date-Time API
  • Calendar Systems
  • Clocks and Period Packages
  • Period between Two Dates and Times
  • Partials
  • Formatting Dates and Times
  • Parsing Dates and Times
  • Wrapper Classes
  • Autoboxing and Unboxing
  • Beware of Null Values
  • Overloaded Methods
  • Comparison Operators
  • Issues with existing Date / Time APIs
  • LocalDate, LocalTime and LocalDateTime
  • Using ZonedDateTime API
  • Using Period and Duration
  • Compatibility with Date and Calendar
  • Date and Time Formatting
  • The Collections Framework
  • The Set Interface
  • Set Implementation Classes
  • The List Interface
  • List Implementation Classes
  • The Map Interface
  • Map Implementation Classes
  • Inheritance
  • What is Inheritance
  • The instanceof Operator
  • Binding
  • Method Overriding and Method Overloading
  • Method Hiding and Field Hiding
  • Disabling Inheritance
  • What is an Interface
  • Implementing an Interface
  • Implementing Multiple Interfaces
  • Interface Inheritance
  • The instanceof Operator
  • Marker Interfaces
  • Functional Interfaces
  • Polymorphism – One Object, May Views
  • Dynamic Binding and Interfaces
  • Pluggable Annotation Processing API
  • Common Annotations and Role Based Annotations
  • @Generated
  • @Resource
  • @Resources
  • @PostConstruct
  • @PreDestroy
  • @DeclareRoles
  • @RolesAllowed
  • @PermitAll
  • @DenyAll
  • Lambda Expressions
  • Single method Interface
  • Anonymous Interface Implementation
  • Lambda Type Inference
  • Lambda Parameters
  • Lambda Function Body
  • Returning a Value
  • Lambdas as Objects
  • Variable Capture
  • Method References as Lambdas
  • Java Stream API for Bulk Data Operations on Collections

Introduction

  • Stream Creation
  • Referencing a Stream
  • Stream Pipeline
  • Lazy Invocation
  • Order of Execution
  • Stream Reduction
  • Parallel Streams
  • Concurrency API improvements
  • The Concurrency API
  • Semaphore and Other Synchronizers
  • Concurrent Collections
  • Atomic Operations
  • Executor and Executor Service
  • Thread Pools
  • Parallel Processing

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