Java 18 to Java 21: Navigate new language features, collection framework changes, master virtual threads and a lot more
What you'll learn Starting from Java 18, navigate through every release up to Java 21
New Language Features
Virtual Threads
Structured Concurrency
Make well-informed decisions about moving beyond Java 17
Tools and performance related improvements
Requirements A computer with the latest JDK(21) and an IDE
Programming experience ideally with Java 17 but 11 will also do (Some code examples in the last section reference Records, Pattern Matching)
To fully grasp the topic of Virtual Threads, a basic understanding of multithreading concepts, including Executors, is recommended
Description Embark on an enlightening journey through the rapid evolution of the Java language with our comprehensive course, meticulously designed to keep you at the forefront of modern Java development.Key Focus Areas:1. Mastering Modern Java Language Features and Tools2. Enhancing Developer Productivity3. Leveraging Virtual Threads for Improved Application ScalabilityCourse Objectives:Gain a profound understanding of the evolving Java language and platform post Java 17. Explore a plethora of enhancements, innovations, and tools introduced from Java 18 to Java 21, delving into Language Features, Library Enhancements, Tools, Deprecations, and more, with a dedicated section for each Java release.Highlighted Topics:- Improving API Documentation- Exploring Simple Web Server- Mastering Character Encoding and UTF-8- Working with Sequenced Collections- Harnessing the Power of Virtual Threads and Structured Concurrency- Understanding how Virtual Thread work behind the scenes- Unpacking Pattern Matching for Switch- Record Patterns DecodedThis course is tailor-made for Java developers eager to master the latest language features and tools, enhance productivity, and leverage virtual threads for superior application scalability. While not a migration guide, it covers areas that can significantly impact migration scenarios.For any questions, I provide full support seven days a week, ensuring you have the assistance you need to maximize your learning experience.
Overview Section 1: Getting Started
Lecture 1 Thinking beyond Java 17: A Journey through Java's Evolution
Lecture 2 Navigating Versions 18 to 21 : Course Introduction and Overview
Lecture 3 Source code: Downloading & Navigation
Section 2: Exploring Java 18
Lecture 4 Section Introduction
Lecture 5 Encoding Chronicles: History of Messaging and Communication
Lecture 6 Encoding Chronicles: What is Character Encoding ?
Lecture 7 From ASCII to Unicode - Unravelling the History of Character Encoding
Lecture 8 Encoding Chronicles: Understanding Unicode and Unicode transformation format
Lecture 9 Encoding Chronicles: Popularity of UTF-8 and the change in JDK 18
Lecture 10 Encoding Chronicles: Technical details - Embracing UTF-8 in JDK 18 and Beyond
Lecture 11 Inner class Memory Optimization
Lecture 12 Support for String Deduplication in ZGC, SerialGC & ParallelGC
Lecture 13 Code Snippets in API Documentation: Existing techniques & shortcomings
Lecture 14 Code Snippets in API Documentation: Overcoming the shortcomings
Lecture 15 Code Snippets in API Documentation: External snippets
Lecture 16 Code Snippets in API Documentation: @snippet Demo
Lecture 17 Simple Web Server: Introduction
Lecture 18 Simple Web Server: Running the server from the command line
Lecture 19 Simple Web Server: Using the API to start the server
Lecture 20 Simple Web Server: Customizing the server
Section 3: Exploring Java 19
Lecture 21 Section Introduction
Lecture 22 DateTimeFormatter: Current shortcomings
Lecture 23 DateTimeFormatter: Solution using ofLocalizedPattern() method
Lecture 24 HashMap and HashSet: Why do we need the new static factory methods ?
Lecture 25 HashMap table size: Example of over-allocation & how to fix
Section 4: Exploring Java 20
Lecture 26 Section Introduction
Lecture 27 Lossy Conversions
Lecture 28 Deprecation: java.net.URL public Constructors
Section 5: Exploring Java 21
Lecture 29 Section Introduction
Lecture 30 Pattern Matching for switch expressions & statements: Introduction
Lecture 31 Pattern Matching for switch expressions & statements: Switches and null
Lecture 32 Pattern Matching for switch expressions & statements: Switches and enum constant
Lecture 33 Record Patterns: Introduction
Lecture 34 Record Patterns: Nested Record Patterns
Lecture 35 Sequenced Collections: Why do we need them ?
Lecture 36 Sequenced Collections: Exploring the new SequencedCollection interface
Lecture 37 Before Virtual Threads, Part 1: Green threads, Platform threads and Little's law
Lecture 38 Before the Advent of Virtual Threads, Part 2: Why do we need Virtual Threads ?
Lecture 39 Virtual Threads: What is a virtual thread ? What is mounting & unmounting ?
Lecture 40 Virtual Threads: Creating a million Virtual Threads
Lecture 41 Virtual Threads: Impact and benefits
Lecture 42 Virtual Threads: Core Components - What's happening behind the scenes ?
Lecture 43 Virtual Threads: Behind the scenes - Continuations
Lecture 44 Virtual Threads: Behind the scenes - Stacks & Continuations
Lecture 45 Virtual Threads: Behind the scenes - LockSupport, park & unpark
Lecture 46 Virtual Threads: Behind the scenes - Different carrier threads
Lecture 47 Virtual Threads: Should we use them everywhere ?
Lecture 48 Virtual Threads: Pinning & ReentrantLock
Lecture 49 Structured Concurrency: Why do we need it ?
Lecture 50 Structured Concurrency: Introduction to ShutdownOnFailure
Lecture 51 Structured Concurrency: Introduction to ShutdownOnSuccess
Lecture 52 Structured Concurrency: Putting it all together
Section 6: Wrapping up !
Lecture 53 Looking forward to Java 22
Lecture 54 Thank you !
Java developers interested in getting up to speed with the ever-evolving Java language,You want to learn the new features of modern Java
Warning! You are not allowed to view this text.
Warning! You are not allowed to view this text.