Java SE8 Programming – JA-PROG

Java SE 8 Programming

Course Code: JA-PROG

This five-day course in Java SE 8 Programming thoroughly teaches you the concepts of object-orientation and the tenets of programming using the Java language. You will be taught, inter-alia core real-world programming principles and through many practical examples build coding skills to further develop your career in software development. With your newly attained knowledge you will have a solid foundation from which you may develop substantial applications as well as undertake continued skills and training in software development.


This module details all the topics covered throughout the duration of the course. 

– Introduction

– Course objectives

– Course schedule

In this module you are introduced to the world of Java. You will be shown demonstrations of some Java technologies:

– Java’s Technology groups


– Servlets – Java on the server side

– Internet of things

– The Java community

– Recap the principles of Object orientation. 

– Model your objects by learning basic UML


– Answer quiz.

– Design a chess game.

In this module you will get yourself ready for programming and will;

– Set up your Java environment

– Write a Java program

– Compile your program

– Becoming familiar with the Java environment.


– Answer quiz.

– Get to know your environment

– Write another application

This module reviews the core Java fundamentals. The content in the module you should already be familiar with. You will be reminded of;

– Using primitive variables

– Declare Strings

– Manipulating and using Strings

– Working with numbers.

– Understanding variable scope.


– Assignment, relational, incremental, decremental, logical, boolean and bitwise operators

Control Flow:

– The if statement and its companion else.

– Switch statement

– ? operator


– pre-test and post-test loops.

– Counter and sentinel controlled loops.

– Jumping to the start and out of your loops


– Answer quiz.

– Programming tasks based on all these fundamental concepts.

This module revises the concept of arrays and the storing and manipulating data. You will learn about; 

– Using a single dimension array.

– Using multidimensional arrays.

– Work with command line arguments


– Answer quiz.

– Programming tasks based on arrays.


Module 6: Modelling the world

In this module we discuss the class, how to define them and then construct objects out of them. In this lesson you will learn to;

– Define classes

– Create nested, inner and anonymous classes

– Define class behaviour.

– Pass primitive and complex arguments to a method.

– Return a primitive or complex value from a method.

– Create Immutable classes

– Use enum and Enumeration


– Answer quiz.

– Programming tasks based on class design, immutable classes and enums.

In this module we continue the concepts of classes and the concept of inheritance. You will learn how to;

– Control access and encapsulate your data.

– Create a subclass

– Understand polymorphism and the principles of overloading and overriding.

– Uses of super and this.

– Cast a superclass reference to the subclass type and visa-versa.

– Design abstract and nonabstract classes

– Create a class hierarchy by extending an abstract class.

– Preventing a class from being subclassed.

– Understand access protection

– Importing packages into your program


– Answer quiz.

– Programming tasks based on inheritance and polymorphism

This is an important concept in Java and continues the concept of polymorphic programming. In this module you will learn all about;

– Defining an interface

– Implementing interfaces

– Nesting interfaces

– Applying interfaces

– Defining variables in interfaces

– Extending interfaces

– default interface methods

– Multiple inheritance issues

– static methods.


– Answer quiz.

– Programming tasks based on inheritance, polymorphism and interfaces

In this module we discuss how to handle any abnormal events that may occur during your program’s execution. You will learn about;

– Exception types

– Using try, catch and finally

– Autoclosure and try-with-resources

– Displaying a description of an Exception

– Multiple catch clauses

– Nested try statements

– throw and throws keywords

– Java’s built-in Exceptions

– Creating your own exceptions

– Using assertions


– Answer quiz.

– Programming tasks based on Exception Handling

In this module you will examine Java’s I/O system in great detail and learn about Java’s basic I/O (input/output) system, including file I/O, serialization; So, you will work with and then understand; 

– I/O classes and interfaces

– How to create files and directories

– I/O exceptions

– Byte streams

– Character streams

– The Console class

– Serialization and Serializable


– Answer quiz.

– Programming tasks based on I/O

In this module you will examine Java’s NIO.2 (which is short for

New I/O). NIO.2 supports a buffer-oriented, channel-based approach to I/O operations and enhanced support for file handling and file system features. So, you will work with and then understand; 

– The Path interface

– The Files class

– The Paths class

– The File attribute interfaces

– The FileSystem, FileSystems, and FileStore classes

– Using the NIO.2 system


– Answer quiz.

– Programming tasks based on NIO.2

In this module you will examine one of the huge changes made to the original Java specification has been the addition of generics. This feature had a profound impact, especially to one of Java’s features known as the Collections Framework. We will discuss collections later during the course. Learning about generics before we get there is essential. So, you will work with and then understand; 

– The general form of a generic class

– Bounded types

– Wildcard arguments

– Creating a generic method

– Generic constructors and interfaces

– Raw types and legacy code

– Generic class hierarchies

– Overriding methods in a generic class

– Erasure

– Generic restrictions including restrictions on static members


– Answer quiz.

– Programming tasks based on generics

In this module you will learn about Lambda and explore Java 8’s built in special interfaces known as functional interfaces. You will get to know and how to use them when programming Lambdas. You will learn about;

– Lambda expression fundamentals

– Functional interfaces

– Lambda expressions as arguments

– Lambda expressions and exceptions

– Predefined functional Interfaces


– Answer quiz.

– Programming tasks based on Lambda expressions

In this module we look Java’s Collections Framework. A sophisticated hierarchy of interfaces and classes that provide

state-of-the-art technology for managing groups of objects. You will understand;

– Autoboxing and type wrappers – using primitive types

– The Collection interfaces

– The List, Set, SortedSet, NavigableSet, Queue and Deque interface

– The Collection classes

– The ArrayList, LinkedList, HashSet, LinkedHashSet, TreeSet, PriorityQueue and

– ArrayDeque class

– Storing user-defined classes in collections

– Comparators and using a Comparator

– The collection algorithms

– The legacy classes and interfaces

– Properties

– Using store() and load()


– Answer Quiz

– Programming tasks based on collections

You have already learned about Lambda expressions so in this module you will learn the stream API, which is designed with lambda expressions in mind. It provides some of the most significant demonstrations of the power that lambdas bring to Java in a stream’s ability to perform very sophisticated operations that search, filter, map or otherwise manipulate data. Using this amazing technology, you will learn;

– Stream Basics

– Stream interfaces

– How to obtain a stream

– How to perform reduction operations

– How to use parallel streams

– How to map your data

– Collect your processed data

– To understand Optional, OptionalDouble, OptionalInt, and OptionalLong


– Answer quiz.

– Programming tasks based on collections, streams and Lambda expressions

In this module we will look at Java’s built-in support for multithreading and synchronization. It is one of Java’s most important innovations major strengths. So, you will learn all about this topic by understanding; 

– The Thread Model

– The Thread class

– The Runnable interface

– The main thread

– Creating a Thread – implementing Runnable, extending Thread

– Creating multiple threads

– Using isAlive() and join()

– Thread priorities

– Synchronization

– Interthread communication

– Deadlock

– Suspending, resuming and stopping threads

– Obtaining a thread’s state


– Answer quiz.

– Programming tasks based on multitasking

Java’s original support for multithreading is not ideal for all applications. Java therefore introduced the concept of concurrency, which provides several high-level features, such as

synchronizers (such as the semaphore), thread pools, execution managers, locks, several concurrent collections and a streamlined way to use threads to obtain computational results. An important addition was the Fork/Join Framework that facilitates the creation of programs which makes use of multiple processors (such as those found in multicore systems). In this module you will learn about this amazing technology and get to understand;

– The Concurrent API

– Using synchronization objects

– CyclicBarrier

– Using an Executor

– Using Callable and Future

– Locks

– Atomic operations

– Parallel programming via the fork/join framework

– Understanding the impact of the level of parallelism

– Using the RecursiveTask<V>

– Executing a Task asynchronously

– Cancelling a Task

– Determining a Task’s completion status

– Restarting a Task 


– Answer quiz.

– Programming tasks based on concurrency, forking and joining

In this module we look at a component added in Java 8, which is the new way of handling dates and times in Java. You will understand;

– The Time and Date API

– Formatting Date and Time with java.text

– DateFormat class

– SimpleDateFormat class

– Time and Date fundamentals

– Formatting Date and Time

– Parsing Date and Time strings


– Programming tasks based on Date and Time API

In this module we look at a JEE component known as JDBC. JDBC stands for Java database Connectivity. So, you will learn about;

– Relational databases and SQL

– Writing basic SQL statements

– The Interfaces of JDBC

– Connecting to a database


– Obtaining a Database Connection

– Obtaining a Statement and executing a Statement

– Performing CRUD operations

– Getting, reading and scrolling through a ResultSet

– Closing database resources


– Answer quiz.

– Programming tasks based on databases

In this module we look at a component added in Java 8, which is the new way of handling dates and times in Java. You will understand;

– TimeZone

– SimpleTimeZone

– Locale

– ResourceBundle, ListResourceBundle, and PropertyResourceBundle classes


– Programming tasks based on Internationalisation

Download our course content

Course Price : N396, 000