Java 9.0 to 13.0

Turn the page on your coding adventures with our advanced Java programming course, where Java 9 to Java 13 rolls out the red carpet for your upskilling journey. 

(JAVA.AW1) / ISBN : 978-1-64459-664-7
Lessons
Lab
TestPrep
AI Tutor (Add-on)
Get A Free Trial

About This Course

Join our Java 9 to 13 course to master the latest in Java programming. 

Through clear, hands-on lessons, you’ll explore Java 9 to 13 features, from modular programming and JShell to reactive programming and advanced garbage collection techniques. 

Learn how to migrate legacy code, leverage new APIs, and stay ahead with the latest Java programming versions. 

Whether you’re upskilling or reskilling, this course is your go-to solution!

Skills You’ll Get

  • Master modular programming in Java 9 with Java Platform Module System (JPMS).
  • Understand and implement reactive programming concepts like Publisher, Subscriber, Subscription, and Back-pressure.
  • Learn to use JShell to test code snippets without writing full application classes.
  • Gain expertise in migrating legacy code to newer Java versions.
  • Explore new APIs and tools introduced in Java 9 to 13, such as HTTP/2 Client, ZGC, Epsilon GC, and Shenandoah GC
  • Develop skills in dynamic class-file constants and nest-based access control in Java 11.
  • Understand switch expressions and text blocks introduced in Java 12 and 13.
  • Learn to work with multi-release JAR files and jLink for creating custom runtime images.
  • Gain hands-on experience with Java Enhancement Proposals (JEPs) across versions 9 to 13.
  • Explore concurrency updates and reactive streams for building scalable applications.
  • Understand time-based release versioning and how to adapt to rapid Java updates.
  • Learn to write and test single-file source-code programs using Java 11’s shebang support.
  • Gain insights into microbenchmarking and low-latency garbage collection for performance optimization.
  • Develop the ability to implement Unicode 10 support and TLS 1.3 in Java applications.
  • Understand dynamic CDS archives and memory management improvements in Java 13.
  • Learn to use Java Flight Recorder and JDK Mission Control for monitoring and diagnostics.

1

Preface

2

Insight of Versioning

  • Introduction
  • Project Green: the beginning 
  • Versions of Java
  • Time-based release version
  • Conclusion
  • Questions
3

What’s New in Java 9

  • Introduction
  • Project Jigsaw
  • Compact profiles
  • Java Platform Module System
  • Explore module
  • Module types
  • Listing JDK modules
  • Java module graph
  • Declaring the module
  • Download Java 9
  • Create your first Java module
  • Compiling module
  • Executing module
  • Working with multiple modules
  • Working with Eclipse
  • Working with Apache NetBeans
  • Java Enhancement Proposals (JEP) in JSE 9.0
  • JEP 102: Process API updates
  • JEP 110: HTTP/2 Client (Incubator)
  • JEP 158: unified JVM logging
  • JEP 213: Milling Project Coin
  • JEP 214: remove GC combinations deprecated in JDK 8
  • JEP 220: modular run-time images
  • JEP 221: new Doclet API
  • JEP 222: JShell (Read-Eval-Print Loop)
  • JEP 238: Multi release JAR file
  • JEP 248: make G1 the default garbage collector
  • JEP 251: multi-resolution images
  • JEP 254: compact Strings
  • JEP 282: jlink, the Java linker
  • JEP 289: deprecate Applet API
  • JEP 291:deprecate the concurrent mark sweep garbage collector
  • Conclusion
4

Understanding JDK 10-Step towards JDK 11

  • Introduction 
  • Downloading JDK 10
  • JEP 286: local variable type inference 
  • Compile time safety
  • Polymorphism
  • Working with collections & arrays
  • Working with traditional for loop
  • Working with for each loop
  • Working with Java streams
  • Working with anonymous class
  • Working with try-with-resources
  • JEP 296: consolidate the JDK forest into a single repository
  • JEP 304: Garbage collector interface
  • JEP 307: Parallel full GC for G1
  • JEP 310: Application class data sharing
  • JEP 313: Remove the native-header generation tool (javah)
  • JEP 314: Additional Unicode language-tag extensions
  • JEP 316: Heap allocation on alternate memory devices
  • JEP 317: experimental Java-based compiler
  • JEP 319: root certificates
  • JEP 322: time-based release versioning
  • API
  • System properties
  • Removed features and options
  • Deprecated features and options
  • Conclusion
  • Questions 
5

Dive in JDK 11

  • Introduction
  • Downloading JDK11
  • JEP 181: nest-based access control
  • Change in the reflective access
  • JEP 309: Dynamic class-file constants
  • JEP 315: Improve Aarch64 intrinsic
  • JEP 318: Epsilon: no-op garbage collector
  • How to implement no-op GC
  • JEP 320: remove the Java EE and CORBA modules
  • JEP 321: HTTP client (standard)
  • JEP 323: local-variable syntax for lambda parameters
  • JEP 324: Key agreement with Curve25519 and Curve 448
  • API changes
  • JEP 327: Unicode 10
  • JEP 328: Flight recorder
  • JEP 329: ChaCha20 and Poly1305 cryptographic algorithms
  • JEP 330: Launch Single-File Source-Code Programs
  • Working with Shebang files
  • JDK 332: Transport Layer Security (TLS) 1.3
  • JEP 333: ZGC: scalable low-latency garbage collector (experimental)
  • Pointer colouring
  • Multimapping
  • Marking
  • Relocation
  • Enabling the ZGC
  • JEP 335: deprecate the Nashorn JavaScript Engine
  • Command line tool jjs
  • Working programmatically with Nashorn
  • JEP 336: deprecate the Pack200 tools and API
  • Conclusion
  • Questions
6

Migrating the Code

  • Introduction
  • Unnamed module
  • Jdeps tool
  • Override module configuration
  • --add-reads
  • --add-exports
  • --opens-add
  • Working with jLink
  • Multi-release JAR file
  • Conclusion
  • Questions
7

Working with JShell

  • Introduction
  • Launching JShell
  • Writing the code in JShell
  • Adding classpath to JShell
  • Forward references in method declaration
  • Working with commands in JShell
  • Editors 
  • Internal Shell editing
  • External editor
  • Feedback in JShell
  • Setting up the feedback:
  • Conclusion
  • Questions
8

Reactive Programming and Concurrency Updates

  • Introduction
  • The reactive manifesto
  • Resilient
  • Responsive
  • Elastic
  • Message driven
  • Journey to be reactive
  • Pull and push model
  • Reactive streams
  • Reactive stream implementation for Java
  • Publish-subscribe mechanism
  • Publisher
  • Subscriber
  • Subscription
  • The processor
  • Working of publisher-subscriber
  • Situation 1: normal publishing and subscription of items
  • Situation 2: cancellation of the items
  • Situation 3: Exception raised due to some reason
  • Working of publisher-processor-subscriber
  • Backpressure
  • Updates in concurrency
  • Conclusion
  • Questions
9

What’s New in Java12

  • Introduction
  • Downloading Java12
  • JEP 189: Shenandoah: A low-pause-time garbage collector
  • JEP 230: Microbenchmark suit
  • Microbenchmark concerns
  • JEP 325: Switch expression
  • Change in expression label by using -> symbol
  • Multiple case labels
  • Returning values from switch
  • JEP 344: JVM Constant API
  • JEP 340: One AArch64 Port, not two
  • JEP 341: Default CDS archives
  • JEP 344: Abortable mixed collections for G1
  • JEP 346: Promptly return unused committed memory from G1
  • New features and enhancements
  • Removed features and options
  • Conclusion
  • Questions
10

Introduction to Java 13

  • Introduction
  • Downloading Java 13
  • JEP 350: Dynamic CDS archive
  • JEP 351:ZGC: uncommit unused memory
  • JEP 353: Reimplement the legacy socket API
  • JEP 354: Switch expressions (preview)
  • Yield statement in switch
  • JEP 355: Text blocks (preview)
  • Writing HTML
  • Writing SQL query string
  • Polyglot language example
  • Conclusion
  • Questions

Any questions?
Check out the FAQs

  Want to Learn More?

Contact Us Now

Yes, a basic understanding of Java programming is recommended, as this course focuses on advanced concepts and updates from Java  9 to 13.

Yes, mastering Java 9 to 13 features is highly relevant for roles like Java Developer, Software Engineer, Backend Developer, and Application Architect.

Yes, you’ll have lifetime access to the course material, including updates and additional resources.

The course is self-paced, but on average, learners complete it in 4-6 months by dedicating 5-7 hours per week.

By mastering Java 9 to 13, you’ll enhance your employability, stay competitive in the job market, and be prepared for roles requiring expertise in modern Java development.

Java Evolution Starts Here

  Master Java 9 to 13 in one go. Upskill, reskill and code like a professional with our interactive, hands-on course. 

$239.99

Buy Now

Related Courses

All Course
scroll to top