This training is a second-level course for programmers learning the Java language. It reviews topics that were taught in the previous course, Java SE: Programming I, and provides additional key skills for Java programmers, such as Functional Programming, Stream API, and database access. The course is completely aligned with the Oracle Java SE 8 Programmer II exam (1Z0-809).
Review of Java Basics
Dates, Times and Locales
Dealing with Time Zones and Daylight Savings
Formatting Dates and Times
Properties Files
Resource Bundles
Dates Times Locales and Resource Bundles
Identifiers and Keywords
Define Classes
Define Interfaces
Use Interfaces
Declare Class Members
Declare and Use enums
Input Output and NIO
Encapsulation
File Navigation and I/O
Files, Path, and Paths
Serialization
Generics and Collections
Override hashCode(), equals(), and toString()
Collections Overview
Use the Collections Framework
Generic Types
Lambda Expressions and Functional Interfaces
Using Built-in Functional Interfaces
Primitive Versions of Predicate Interface
Binary Versions of Functional Interfaces
The UnaryOperator Interface
Streams
Collection Streams and Filters
The Stream Pipeline
Search Data from a Stream
The Optional class
Stream Data Methods and Calculation Methods
Sort a Collection Using Stream API
Using flatMap Method in Stream
Map-Filter-Reduce with average() and Optionals
Threads
Defining and Instantiating Threads
Thread States and Transitions
Synchronizing Code, Thread Problems
Thread Interaction
Concurrency
Apply Atomic Variables and Locks
Use java.util.concurrent Collections
Use Executors and ThreadPools
Use the Parallel Fork/Join Framework
Parallel Streams
Data Access with JDBC
Introduction to JDBC
Connecting to a Database
Submitting Queries and Reading Results from the Database
Updating the Database
Java Developers, Java EE Developers, Java Applications Architects
Course Java SE 8 Programming I (Foundations) or equivalent skills