Udemy

Modern Java: Mastering Features from Java 8 to Java 25

Enroll Now
  • 64,769 Students
  • Updated 10/2025
4.5
(14,183 Ratings)
CTgoodjobs selects quality courses to enhance professionals' competitiveness. By purchasing courses through links on our site, we may receive an affiliate commission.

Course Information

Registration period
Year-round Recruitment
Course Level
Study Mode
Duration
15 Hour(s) 49 Minute(s)
Language
English
Taught by
Pragmatic Code School
Rating
4.5
(14,183 Ratings)

Course Overview

Modern Java: Mastering Features from Java 8 to Java 25

"Master Java 8 to Java 25: Functional Programming, Records, Sealed Classes, Pattern Matching, and more through hands-on.

[ Major Update : Complete Course updated on Oct 2025 ]

Learn the new Java 8, Java ll, Java 17, Java 21, Java 25 Features by coding it,This is a pure coding course and you will get a complete understanding of all the Java 8, Java ll, Java 17, Java 21,  Java 25 features by coding it

Why Should I take this course ?

  • This course will help the Java developers to build their knowledge on the new Java 8 features

  • All the new features such as Lambdas, Streams , Optionals, Functional Interfaces and Parallel Programming will be explained via code

  • This course will give you the confidence on implementing new Java 8 features in real Java projects

  • By the end of this course you will have a complete understanding of new Java 8 functional features

Course Overview :

Section 1 - Getting Started:

  • This section explains about what will be covered in this course

Section 2 - Why Java-8 ?:

  • This section covers Why Java 8 is important?

  • This section explains about difference between Imperative Programming and Declarative Programming

Section 3 - WorkSpace Setup - Mac/Windows:

  • This section covers the installation of Java and IntelliJ in Mac and Windows

Section 4: Introduction to Lambda

  • This section covers the Why Lambda is needed , Lambdas Syntax and How to implement Lambdas ?

  • Implement the Runnable interface using Lambdas

  • Implement the Comparator interface using Lambdas

Section 5: Lambdas and Functional Interfaces

  • This section covers the new Functional Interfaces that got introduced as part of Java 8

    • Consumer Functional Interface

    • Predicate Functional Interface

    • Function Functional Interface

    • Supplier Functional Interface

Section 6 : Constructor and Method References

  • This section covers the new Method Reference and the Constructor Reference

    • How Method Reference simplifies the code

    • How to use Method reference along with Lambdas

    • How to use Constructor Reference to create new objects

Section 7 : Lambdas and Local variables ( Effectively Final )

  • This section covers the local variable and how it should used in Lambdas

  • Definition of Effectively Final scope of a variable

Section 8 : Streams API

  • This section covers the Streams API which is one of the important feature that got introduced as part of Java8

  • How the Stream API Works Internally ?

  • How Collections are different from Streams ?

  • How to debug a Stream ?

Section 9 : Streams API Operations

  • This section covers different Streams API operations that can be used in Streams to achieve an objective

  • Streams Operations such as :

    • map()

    • flatMap()

    • distinct()

    • count()

    • filter()

    • reducer()

    • Map, Filter and Reduce pattern

    • max()

    • min()

    • limit()

    • skip()

    • allMatch(), anyMatch() and noneMatch()

    • findAny() and findFirst()

  • Explanation of Stream operations that are Short Circuit operations

Section 10 : Streams API - Factory Methods

  • This section covers different Streams API factory method that can be used to create Streams

Section 11: Numeric Streams

  • This section covers the Introduction to Numeric Streams which can be used to perform some numeric related operations

Section 12: Terminal Operations Streams

  • This section covers different way to collect the data from the Streams Pipeline

  • Terminal Operations such as :

    • joining()

    • counting()

    • mapping()

    • max(), min()

    • sum()

    • average()

    • groupingBy()

    • partitioningBy()

Section 13: Streams API - Parallel Processing

  • This section covers how to perform the Parallel processing using Streams

  • How Parallel Programming makes use of the processors in your machine to perform concurrency operations?

  • How Parallel Programming works internally ?

  • How to check the performance between the sequential and parallel programming ?

  • Scenarios when not to use parallel programming

Section 14: Optional

  • This section covers What is Optional and the benefits of Optional

  • How Optional can help you avoid Null Pointer exception

  • Exploring the different operations that are part of Optional such as :

    • empty()

    • ofNullable()

    • of()

    • orElse()

    • orElseGet()

    • orElseThrow()

    • isPresent()

    • ifPresent()

    • map()

    • flatMap()

    • filter()

Section 12: Streams API - Parallel Processing

  • This section covers how to perform the Parallel processing using Streams

  • How Parallel Programming makes use of the processors in your machine to perform concurrency operations?

  • How Parallel Programming works internally ?

  • How to check the performance between the sequential and parallel programming ?

  • Scenarios when not to use parallel programming

Section 13: Optional

  • This section covers What is Optional and the benefits of Optional

  • How Optional can help you avoid Null Pointer exception

  • Exploring the different operations that are part of Optional such as :

    • empty()

    • ofNullable()

    • of()

    • orElse()

    • orElseGet()

    • orElseThrow()

    • isPresent()

    • ifPresent()

    • map()

    • flatMap()

    • filter()

Section 14: New Date/Time Libraries

  • This section covers new Date/Time Libraries such as LocalDate, LocalTime, LocalDateTime

  • How to find the difference between the LocalDate, LocalTime and LocalDateTime using Period, Duration

  • How to represent the time in the Machine Readable Format using Instant

  • How to use the TimeZone using the ZonedDateTime

  • How to Format the Date using the DateTimeFormatter


Section 15: Local Variable Type Inference (LVTI) using var

  • In this section, we will code and learn about the LVTI feauture to simply local variable declaration using type inference.

Section 16: Text Blocks

  • In this section, we will code and learn about the TextBlocks which enhances the power of String in Java.

Section 17: Enhanced Switch

  • In this section, we will code and learn about the new Switch which is an expression.

    • Switch - as an Expression

    • Multiline switch expression using "yield"

    • Enhanced Switch are exhaustive

Section 18 : Records

  • In this section, we will code and explore the record classes concept in Modern Java.

    • Records Classes

    • Custom Constructors and Validations in Record Classes

    • Object Equality in Record Clases

Section 19  : Pattern Matching

  • In this section, we will code and learn about pattern matching.

    • Introduction to Pattern Matching

    • Record Patterns - Pattern Matching on Records

    • Guarded Patterns

Section 20 : ChekoutService Application [ Real Time Usecase]

  • In this section, we will implement a realtime application using all the modern java concepts that we have learned so far.

Section 21 : Simple Web Server

  • In this section, I will give you a demonstration of jwebserver and how it serves the files and folders as resources.

Section 22 : New Http Client

  • In this section, we will code and explore the new HTTP Client that has support for HTTP2/Websockets.

    • New HttpClient - GET Request to retrieve movie by ID

    • JUnit test for the HTTP Client

    • Build HTTPClient in Asynchronous mode

    • Build HTTP Client - GET Request to Retrieve AllMovies

Section 23 : Java Platform Module System (JPMS)

  • In this section, we will code and learn about how to build java application using JPMS or modules.

    • Introduction to JPMSBuild a Java app using JPMS

    • Working with Multiple Modules

    • Working with Multiple Modules - Transitively

    • Unnamed Modules and Automatic Modules


By the end of this course you will have a complete understanding of all the Java 8, Java ll, Java 17, Java 21  features and implement it in real Java projects


Course Content

  • 10 section(s)
  • 148 lecture(s)
  • Section 1 Getting Started
  • Section 2 Getting Started Modern Java
  • Section 3 Local Set Up
  • Section 4 Source Code and Slides for the course
  • Section 5 Why Java 8 ?
  • Section 6 Introduction to Lambda
  • Section 7 Lambdas and Functional Interfaces
  • Section 8 Constructor and Method References
  • Section 9 Lambdas and Local variables ( Effectively Final )
  • Section 10 Streams API

What You’ll Learn

  • Learn Java 8, Java ll, Java 17, Java 21 Features by coding it.
  • Learn Functional programming in Java
  • Complete understanding of Lambdas, Streams , Optional via code.
  • Students will be able to implement the new Java 8 concepts in real time
  • Learn to build complex Streams Pipeline.
  • Learn the new Date/Time Libraries in Java 8
  • Learn to use Method Reference , Constructor reference syntax.
  • Learn and understand Parallel Programming with the Streams.
  • Student will be able to upgrade their Java knowledge with the new Functional Features.
  • This course will be continuously updated.
  • LVTI, TextBlocks, Enhanced Switch, Record Classes
  • Learn Pattern Matching to write concise and structured code
  • Use Sealed Class to apply controlled Inheritance
  • Java Platform Module System(JPMS) and its benefits
  • All the new features in Modern Java


Reviews

  • N
    Narendra Gourripati
    5.0

    excellent course provided in Java 8 to Java 25

  • B
    Bhushan Jain
    4.5

    The course was really very good tutor explaination was good

  • S
    Steve Yeager
    4.0

    Lots of good details. some sections were so small, that the overhead of introducing, creating main class and execution overhead, and final comments were equally as long as the topic. Also, some topics were closely related to others, such as the date and time elements that had the same/similar functionality but were dragged out as if they were different concepts. that part dragged. but mostly, good content and lots of good information.

  • H
    Hitesh Raj Bhotra
    5.0

    Amazing course thanks for super in to the point lectures. Helped me a lot. Keep it up.

Start FollowingSee all

We use cookies to enhance your experience on our website. Please read and confirm your agreement to our Privacy Policy and Terms and Conditions before continue to browse our website.

Read and Agreed