Java SE8 Programming Courses

Java SE8 Programming Courses in Cape Town


About this Course
This course is aimed at Java developers who are preparing for the Oracle Certified Professional, Java SE 8 Programmer II [1Z0-809] examination. The course includes detailed coverage of all the topics in the exam, and includes comprehensive examples and exercises to assist your preparation for the exam as well as your general Java career. 2KO is an IT consulting and training company, offering both business services and multi-platform training. 2KO Africa's wide range of computer courses are available as full time classes, or as online learning.


Included in your course fees

Tuition fees

Breakfast and lunch on course days

Teas and coffees

Attendance certificate


Course Contents
Java Class Design

Implement encapsulation

Implement inheritance including visibility modifiers and composition

Implement polymorphism

Override hashCode, equals, and toString methods from Object class

Create and use singleton classes and immutable classes

Develop code that uses static keyword on initialize blocks, variables, methods, and classes


Advanced Java Class Design

Develop code that uses abstract classes and methods

Develop code that uses final keyword

Create inner classes including static inner class, local class, nested class, and anonymous inner class

Use enumerated types including methods, and constructors in an enum type

Develop code that declares, implements and/or extends interfaces and use the atOverride annotation.

Create and use Lambda expressions


Generics and Collections

Create and use a generic class

Create and use ArrayList, TreeSet, TreeMap, and ArrayDeque objects

Use java.util.Comparator and java.lang.Comparable interfaces

Collections Streams and Filters

Iterate using forEach methods of Streams and List

Describe Stream interface and Stream pipeline

Filter a collection by using lambda expressions

Use method references with Streams


Lambda Built-in Functional Interfaces

Use the built-in interfaces included in the java.util.function package such as Predicate, Consumer, Function, and Supplier

Develop code that uses primitive versions of functional interfaces

Develop code that uses binary versions of functional interfaces

Develop code that uses the UnaryOperator interface


Java Stream API

Develop code to extract data from an object using peek() and map() methods including primitive versions of the  map() method

Search for data by using search methods of the Stream classes including findFirst, findAny, anyMatch, allMatch,  noneMatch

Develop code that uses the Optional class

Develop code that uses Stream data methods and calculation methods

Sort a collection using Stream API

Save results to a collection using the collect method and group/partition data using the Collectors class

Use flatMap() methods in the Stream API


Exceptions and Assertions

Use try-catch and throw statements

Use catch, multi-catch, and finally clauses

Use Autoclose resources with a try-with-resources statement

Create custom exceptions and Auto-closeable resources

Test invariants by using assertions


Use Java SE 8 Date/Time API

Create and manage date-based and time-based events including a combination of date and time into a single object using LocalDate, LocalTime, LocalDateTime, Instant, Period, and Duration

Work with dates and times across timezones and manage changes resulting from daylight savings including  Format date and times values

Define and create and manage date-based and time-based events using Instant, Period, Duration, and TemporalUnit


Java I/O Fundamentals

Read and write data from the console

Use BufferedReader, BufferedWriter, File, FileReader, FileWriter, FileInputStream, FileOutputStream, ObjectOutputStream, ObjectInputStream, and PrintWriter in the java.iopackage.


Java File I/O (NIO.2)

Use Path interface to operate on file and directory paths

Use Files class to check, read, delete, copy, move, manage metadata of a file or directory

Use Stream API with NIO.2


Java Concurrency

Create worker threads using Runnable, Callable and use an ExecutorService to concurrently execute tasks

Identify potential threading problems among deadlock, starvation, livelock, and race conditions

Use synchronized keyword and java.util.concurrent.atomic package to control the order of thread execution

Use java.util.concurrent collections and classes including CyclicBarrier and CopyOnWriteArrayList

Use parallel Fork/Join Framework

Use parallel Streams including reduction, decomposition, merging processes, pipelines and performance.


Building Database Applications with JDBC

Describe the interfaces that make up the core of the JDBC API including the Driver, Connection, Statement, and ResultSet interfaces and their relationship to provider implementations

Identify the components required to connect to a database using the DriverManager class including the JDBC URL

Submit queries and read results from the database including creating statements, returning result sets, iterating through the results, and properly closing result sets, statements, and connections