Intermediate Java Programming is hands-on fast-track course geared for experienced developers who have prior working of basic Java who want to take advantage of the newest features of Java 11 that can help them improve performance and functionality of their Java applications. Students will explore and learn how to leverage Modules, scale applications into multi-core environments, improve performance, and become a more effective Java developer.

starstarstarstarstar

* Actual course outline may vary depending on offering center. Contact your sales representative for more information.

Learning Objectives

Working in a hands-on learning environment, guided by our expert team, attendees will learn to:
Develop modular applications in Java
Explore the Module service loader
Utilize the tooling that is provided in Java 11 to migrate, monitor and optimize applications
Use the new JShell tool to quickly test java constructs
Develop multi-threaded applications
Work with the CompletableFuture instances introduced in Java 8
Use JDBC to read, write and update records in a relational database
Use the HTTP Client API introduced in Java 11
Explore the Dependency Injection (CDI) and Persistence (JPA) API
Apply the Introspection and Reflection APIs
Understand the importance of Reference Objects
Utilize Project Lombok

1
  • WHY JIGSAW?

  • Problems with Classpath

    Encapsulation and the public access modifier

    Application memory footprint

    Java 8’s compact profile

    Using internal JDK APIs


2
  • INTRODUCTION TO THE MODULE SYSTEM

  • Introduce Project Jigsaw

    Classpath and Encapsulation

    The JDK internal APIs

    Java 9 Platform modules

    Introduce Project Jigsaw

    Classpath and Encapsulation

    The JDK internal APIs

    Java 9 Platform modules

    Defining application modules

    Define module dependencies

    Implicit dependencies

    Implied Readability

    Exporting packages


3
  • THE MODULE DESCRIPTOR

  • Define module requirements

    Explain qualified exports

    Open modules for reflection

    Use ServiceLoader

    The provides and uses keywords


4
  • WORKING WITH MODULES

  • Being backwards compatible

    The ModulePath and ClassPath

    Unnamed Modules

    Automatic Modules

    The JLink tool


5
  • JSHELL

  • Introduction to JShell

    Running Expressions in JShell

    Importing packages

    Defining methods and types

    Using the JShell editor

    Save and loading state


6
  • JAVA DATA ACCESS JDBC API

  • Connecting to a database using JDBC

    Executing a statement against a database that returns a ResultSet

    Setting up and working with PreparedStatements

    Extracting multiple rows of data from a ResultSet

    Inserting, updating and deleting rows in a table

    Tutorial: Simple Maven Setup with Eclipse


7
  • INTRODUCTION TO ANNOTATIONS

  • Discussing how annotations work in Java

    Understanding what is required to work with Java’s annotations

    Using annotations

    Other technologies that are using annotations


8
  • INTRODUCTION TO CDI

  • Understand the value of CDI

    Explore dependency injection (DI)

    Understand alternatives

    Understand annotation processing

    Use and configure CDI


9
  • OVERVIEW OF JPA

  • Discuss Object to Relational (O/R) Mapping (ORM)

    Explore the Java Persistence API (JPA)

    Explain the ORM framework configuration

    Map a ‘simple’ entity to a database table


10
  • INTRODUCTION TO MULTITHREADING AND CONCURRENCY

  • Principles of Multithreading

    The Thread class and Runnable interface

    Explore thread synchronization

    Introduce the Java Concurrency API


11
  • CONCURRENT JAVA

  • Thread management using Executors

    The common thread-pool

    Submitting and controlling asynchronous tasks

    Explore the locking API


12
  • NON-BLOCKING ASYNCHRONOUS TASKS

  • The CompletableFuture

    Define non-blocking processes

    Exception handling in multithreaded processes

    The Fork-Join framework


13
  • THE HTTP CLIENT API

  • Making HTTP (Hypertext Transfer Protocol) requests

    Explain Incubator Modules

    HTTP2 Client API

    Introduce WebSockets

    Communicate with WebSocket endpoints


14
  • OTHER NEW JAVA FEATURES

  • Enhancements on the Optional class

    Improvements made in the Process API

    The Stack-Walking API

    The HTTP2 Client

    The Multi-Resolution API


15
  • PERFORMANCE OPTIMIZATIONS

  • Ahead-Of-Time Compilation

    Hotspot Diagnostic commands

    Variable and Method Handles


16
  • MEMORY MANAGEMENT

  • Understand memory management in Java

    Discuss the various garbage collectors

    The Garbage-First (G1) Garbage Collector

    The No-Op and ZGS Garbage Collectors


17
  • REFERENCE OBJECTS

  • List the kinds of object references available in Java

    Introduce Weak, Soft and PhantomReference

    Explain the ReferenceQueue


18
  • INTROSPECTION AND REFLECTION

  • Reflection classes

    Introspection

    Dynamic invocation of methods

    Using annotations

    Type annotations

    Receiver parameter


19
  • PROJECT LOMBOK

  • Introduce the Lombok Project

    Configure the Lombok Annotation processor

    Introduce some of the commonly used Lombok annotations


Audience

This in an intermediate-level Java development course geared for students experienced with Java 8 or higher programming essentials who wish to quickly get up and running with advanced Java skills. This course does not cover Java programming fundamentals.

Language

English

Prerequisites

Take Before: Students should have practical skills equivalent to or should have attended the following course(s) as a pre-requisite: TT2104: Fast Track to Core Java Programming for OO Developers (C+, C#, etc.)

$1,995

Length: 3.0 days (24 hours)

Level:

Not Your Location? Change

Course Schedule:

Schedule select
29
Nov
Wednesday
10:00 AM ET -
6:00 PM ET
Filling Fast
Available
Loading...