Intermediate Java | Next-Level Java Developer Skills (TT2211)

Explore Modular System, Jigsaw, Concurrency, JShell, JDBC, Performance Optimization, CDI, JPA, Project Lombok & More

TT2211

Intermediate

3 Days

Course Overview

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.

This “skills-centric” course is about 50% hands-on, designed to train attendees in advanced development skills, coupling the most current, effective techniques with the soundest industry practices. Students will leave this course armed with the required skills to improve their Java applications using sound coding techniques and best practices. 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

Course Objectives

This “skills-centric” course is about 50% hands-on lab and 50% lecture, designed to train attendees in advanced development skills, coupling the most current, effective techniques with the soundest industry practices. Students will leave this course armed with the required skills to improve their Java applications using sound coding techniques and best practices. 

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

Need different skills or topics?  If your team requires different topics or tools, additional skills or custom approach, this course may be further adjusted to accommodate.  We offer additional Java, JEE and Java for Web application development, design, testing, services, application security and other related topics that may be blended with this course for a track that best suits your needs. Our team will collaborate with you to understand your needs and will target the course to focus on your specific learning objectives and goals.

Course Prerequisites

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. 

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.)

What’s Next / Follow-on Courses:  We offer a wide variety of follow-on courses for advanced Java application development, Java for Web / Java EE, Spring, REST, Microservices, Unit Testing / TDD, Java secure coding, full stack programming paths and more. Please see the Related Courses tab for specific Pre-Requisite courses, Related Courses or Follow-On training options. Our team will be happy to help you with recommendations for next steps in your Learning Journey.

Course Agenda

Please note that this list of topics is based on our standard course offering, evolved from typical industry uses and trends. We’ll work with you to tune this course and level of coverage to target the skills you need most.

Session: The Java Module system (Jigsaw)

Lesson: Why JigSaw?

  • Problems with Classpath
  • Encapsulation and the public access modifier
  • Application memory footprint
  • Java 8’s compact profile
  • Using internal JDK APIs

Lesson: Introduction to the Module System

  • 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
  • Lab: Defining Modules
  • Lab: Defining Modules

Lesson: The Module Descriptor

  • Define module requirements
  • Explain qualified exports
  • Open modules for reflection
  • Use ServiceLoader
  • The provides and uses keywords
  • Lab: Modules and the ServiceLoader
  • Lab: Using Reflection on modules

Lesson: Working With Modules

  • Being backwards compatible
  • The ModulePath and ClassPath
  • Unnamed Modules
  • Automatic Modules
  • The JLink tool
  • Lab: Migrating to modules

Session: JShell

Lesson: JShell

  • Introduction to JShell
  • Running Expressions in JShell
  • Importing packages
  • Defining methods and types
  • Using the JShell editor
  • Save and loading state
  • Lab: Working With JShell

Session: Accessing Resources

Lesson: 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
  • Lab: Intro to JDBC

Lesson: 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

Lesson: Introduction to CDI

  • Understand the value of CDI
  • Explore dependency injection (DI)
  • Understand alternatives
  • Understand annotation processing
  • Use and configure CDI
  • Lab: Introduction to CDI
  • Lab: Adding CDI Qualifiers (optional)

Lesson: 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
  • Examine how to read, write and search for entities
  • Lab: Introduction to JPA

Session: Multithreading and Concurrency

Lesson: Introduction to Multithreading and Concurrency

  • Principles of Multithreading
  • The Thread class and Runnable interface
  • Explore thread synchronization
  • Introduce the Java Concurrency API
  • Lab: MultiThreading
  • Lab: Futures

Lesson: Concurrent Java

  • Thread management using Executors
  • The common thread-pool
  • Submitting and controlling asynchronous tasks
  • Explore the locking API
  • Lab: Working with Concurrent Java
  • Lab: CompletableFuture

Lesson: Non-blocking asynchronous tasks

  • The CompletableFuture
  • Define non-blocking processes
  • Exception handling in multithreaded processes
  • The Fork-Join framework
  • Lab: ForkJoin
  • Lab: CompletionStage (optional)

Session: HTTP Client API

Lesson: The HTTP Client API

  • Making HTTP (Hypertext Transfer Protocol) requests
  • Explain Incubator Modules
  • HTTP2 Client API
  • Introduce WebSockets
  • Communicate with WebSocket endpoints
  • Lab: HTTP Clients

Session: More Java

Lesson: 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
  • Lab: Working with Native processes

Lesson: Performance Optimizations

  • Ahead-Of-Time Compilation
  • Hotspot Diagnostic commands
  • Variable and Method Handles
  • Lab: JIT Compiler

Lesson: 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

Session: Reflection and References

Lesson: Reference Objects

  • List the kinds of object references available in Java
  • Introduce Weak, Soft and PhantomReference
  • Explain the ReferenceQueue
  • Lab: Reference Objects

Additional Topics: Time Permitting

These topics will be included in your course materials but may or may not be presented during the live class depending on the pace of the course and attendee skill level and participation.

Lesson: Introspection and Reflection

  • Reflection classes
  • Introspection
  • Dynamic invocation of methods
  • Using annotations
  • Type annotations
  • Receiver parameter
  • Lab: Introspection and Reflection

Lesson: Project Lombok

  • Introduce the Lombok Project
  • Configure the Lombok Annotation processor
  • Introduce some of the commonly used Lombok annotations
  • Lab: Project Lombok

 

Course Materials

Course Materials: Each participant will receive a Student Guide with course notes, code samples, software tutorials, step-by-step written lab instructions, diagrams and related reference materials and resource links. Students will also receive the project files (or code, if applicable) and solutions required for the hands-on work.

Setup Made Simple! Our dedicated tech team will work with you to ensure our ‘easy-access’ cloud-based course environment is accessible, fully-tested and verified as ready to go well in advance of the course start date, ensuring a smooth start to class and effective learning experience for all participants. Please inquire for details and options.

Every-Course Extras = High-Value & Long-Term Learning Support! All Public Schedule courses include our unique EveryCourse Extras package (Post-Course Resource Site access with Review Labs & Live Instructor Follow-on Support, access to QuickSkills recorded High-Value lessons, Free *Live* Course Refresh Re-Takes, early access to Special Offers, Free Courses & more). Please inquire for details.

Raise the bar for advancing technology skills

Attend a Class!

Live scheduled classes are listed below or browse our full course catalog anytime

Special Offers

We regulary offer discounts for individuals, groups and corporate teams. Contact us

Custom Team Training

Check out custom training solutions planned around your unique needs and skills.

EveryCourse Extras

Exclusive materials, ongoing support and a free live course refresh with every class.

Mix, Match & Master!
2FOR1: Two Courses, One Price!

Enroll in *any* two public courses (for 2023 *OR* 2024 dates!) by December 31, for one price!  Learn something new, or share the promo!

Click for Details & Additional Offers

Learn. Explore. Advance!

Extend your training investment! Recorded sessions, free re-sits and after course support included with Every Course
Trivera MiniCamps
Gain the skills you need with less time in the classroom with our short course, live-online hands-on events
Trivera QuickSkills: Free Courses and Webinars
Training on us! Keep your skills current with free live events, courses & webinars
Trivera AfterCourse: Coaching and Support
Expert level after-training support to help organizations put new training skills into practice on the job

The voices of our customers speak volumes

Special Offers
Limited Offer for most courses.

SAVE 50%

Learn More