Course Code: java17bespoke
Duration: 14 hours
Prerequisites:
  • Basic knowledge in programming

Audience

  • Software developers
  • Programmers
Overview:

Java 17 is a powerful and versatile language used for building everything from simple desktop apps to large-scale enterprise systems, cloud applications, and data processing pipelines.

This instructor-led, live training (online or onsite) is aimed at intermediate-level software developers who wish to learn the core Java concepts and programming principles of Java 17.

By the end of this training, participants will be able to:

  • Understand the advanced features of Java 17, including records, enhanced switch expressions, and pattern matching.
  • Utilize the Java Module System to create and use modular Java applications.
  • Implement concurrent and asynchronous programming.
  • Apply best practices and optimization techniques to write maintainable and efficient Java code.
  • Package and deploy Java applications, including creating JAR files and exploring GraalVM for native images.

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.

Course Customization Options

  • To request a customized training for this course, please contact us to arrange.
Course Outline:

Introduction to Java

  • History and evolution of Java
  • Overview of Java versions and updates
  • What’s new in Java 17

Control Flow Statements

  • Enhanced switch expressions (Java 17 feature)

Record Classes (Java 17 feature)

  • Understanding records in Java 17
  • How records simplify data encapsulation

Pattern Matching for instanceof (Java 17 feature)

  • Simplifying type checks with pattern matching

Deprecation and Removal of Features

  • Deprecated APIs in Java 17
  • Removal of outdated features

Switch Expression Enhancements

  • Pattern matching in switch
  • Using switch expressions for cleaner code

Foreign Function & Memory API (Incubator)

  • Overview of the incubator module
  • Working with native code in Java

Java Module System (Project Jigsaw)

  • Introduction to modules in Java
  • Creating and using modules
  • Module descriptors and module-info.java
  • Advantages of modularization

Concurrency and Multithreading

  • Introduction to threads and multithreading
  • Runnable interface and Callable interface
  • Synchronization, locks, and thread safety

Asynchronous Programming with CompetableFuture

  • Writing asynchronous code
  • Using CompetableFuture for non-blocking operations

Deploying Java Applications

  • Creating and executing JAR files
  • Packaging and distributing Java applications
  • Introduction to GraalVM (optional)

Best Practices and Code Optimization

  • Writing efficient and maintainable Java code
  • Common performance pitfalls and how to avoid them
  • Code refactoring techniques

Summary and Next Steps