Java 25 Features: New Language Enhancements ๐
Explore the latest Java 25 features, focusing on data-oriented programming, onboarding new developers, and more improvements.

Java
48.1K views โข Aug 31, 2025

About this video
Java 25 ships with a number of new language features, many of which fit under the umbrella of data-oriented programming, on-ramping new developers, and making Java more viable as a scripting language for easy automation. Join Jose as he explores these features.
JDK 25: https://jdk.java.net/25/
Java 25 Launch Stream: https://dev.java/community/java-25-launch/
ACME Soft's Road to 25: https://www.youtube.com/playlist?list=PLX8CzqL3ArzXJ2_0FIGleUisXuUm4AESE
~~~~~ Links ~~~~~
JEP 395: Records: https://openjdk.org/jeps/395
JEP 440: Record Patterns: https://openjdk.org/jeps/440
JEP 394: Pattern Matching for Instanceof: https://openjdk.org/jeps/394
JEP 441: Pattern Matching for Switch: https://openjdk.org/jeps/441
JEP 409: Sealed Classes: https://openjdk.org/jeps/409
JEP 361: Switch Expressions: https://openjdk.org/jeps/361
JEP 456: Unnamed Variables & Patterns: https://openjdk.org/jeps/456
JEP 507: Primitive Types in Patterns, instanceof and switch (Third Preview): https://openjdk.org/jeps/507
JEP 512: Compact Source Files and Instance Main Methods: https://openjdk.org/jeps/512
JEP 458: Launch Multi-File Source-Code Programs: https://openjdk.org/jeps/458
JEP 511: Module Import Declarations: https://openjdk.org/jeps/511
JEP 502: Stable Values (Preview): https://openjdk.org/jeps/502
JEP 513: Flexible Constructor Bodies: https://openjdk.org/jeps/513
Amber mailing list: https://mail.openjdk.org/mailman/listinfo/amber-dev
~~~~~ Chapters ~~~~~
0:00 Intro
1:21 Data Oriented Programming
2:03 Switching on a sealed type using pattern matching
4:23 Simplifying patterns with unnamed variables
7:23 Analyzing the use of unnamed variables in record patterns
8:27 Using unnamed variables in type patterns
8:54 Using unnamed variables when catching exceptions
9:35 Using unnamed variables in lambda expressions
11:28 Using unnamed variables in other places
13:55 Extending Pattern Matching with primitive types
15:04 Analyzing the status of an HTTP response with switch on primitive patterns
16:29 Switching on booleans
17:15 Safe JSON data analysis with primitive patterns
20:33 Simplifying the writing of Java applications
22:14 Using IO.println() to print messages
22:41 Running some Java code without calling the compiler
23:40 Running multi-file source-code programs
24:40 Importing modules in Java classes
26:02 Wrapping up simplified Java applications
27:06 Using Markdown to write your JavaDoc
28:37 Constructing object to manage null values and constants properly
30:59 Analyzing the construction of objects
32:29 Introducing Stable Values to create real constants
33:28 Revising object construction with Flexible Constructor Bodies
Tags: #Java #Java25 #OpenJDK
JDK 25: https://jdk.java.net/25/
Java 25 Launch Stream: https://dev.java/community/java-25-launch/
ACME Soft's Road to 25: https://www.youtube.com/playlist?list=PLX8CzqL3ArzXJ2_0FIGleUisXuUm4AESE
~~~~~ Links ~~~~~
JEP 395: Records: https://openjdk.org/jeps/395
JEP 440: Record Patterns: https://openjdk.org/jeps/440
JEP 394: Pattern Matching for Instanceof: https://openjdk.org/jeps/394
JEP 441: Pattern Matching for Switch: https://openjdk.org/jeps/441
JEP 409: Sealed Classes: https://openjdk.org/jeps/409
JEP 361: Switch Expressions: https://openjdk.org/jeps/361
JEP 456: Unnamed Variables & Patterns: https://openjdk.org/jeps/456
JEP 507: Primitive Types in Patterns, instanceof and switch (Third Preview): https://openjdk.org/jeps/507
JEP 512: Compact Source Files and Instance Main Methods: https://openjdk.org/jeps/512
JEP 458: Launch Multi-File Source-Code Programs: https://openjdk.org/jeps/458
JEP 511: Module Import Declarations: https://openjdk.org/jeps/511
JEP 502: Stable Values (Preview): https://openjdk.org/jeps/502
JEP 513: Flexible Constructor Bodies: https://openjdk.org/jeps/513
Amber mailing list: https://mail.openjdk.org/mailman/listinfo/amber-dev
~~~~~ Chapters ~~~~~
0:00 Intro
1:21 Data Oriented Programming
2:03 Switching on a sealed type using pattern matching
4:23 Simplifying patterns with unnamed variables
7:23 Analyzing the use of unnamed variables in record patterns
8:27 Using unnamed variables in type patterns
8:54 Using unnamed variables when catching exceptions
9:35 Using unnamed variables in lambda expressions
11:28 Using unnamed variables in other places
13:55 Extending Pattern Matching with primitive types
15:04 Analyzing the status of an HTTP response with switch on primitive patterns
16:29 Switching on booleans
17:15 Safe JSON data analysis with primitive patterns
20:33 Simplifying the writing of Java applications
22:14 Using IO.println() to print messages
22:41 Running some Java code without calling the compiler
23:40 Running multi-file source-code programs
24:40 Importing modules in Java classes
26:02 Wrapping up simplified Java applications
27:06 Using Markdown to write your JavaDoc
28:37 Constructing object to manage null values and constants properly
30:59 Analyzing the construction of objects
32:29 Introducing Stable Values to create real constants
33:28 Revising object construction with Flexible Constructor Bodies
Tags: #Java #Java25 #OpenJDK
Tags and Topics
Browse our collection to discover more content in these categories.
Video Information
Views
48.1K
Likes
1.5K
Duration
35:09
Published
Aug 31, 2025
User Reviews
4.7
(9) Related Trending Topics
LIVE TRENDSRelated trending topics. Click any trend to explore more videos.
No specific trending topics match this video yet.
Explore All Trends