News and views from members of the Java team at Oracle
All Tags
JDK 28
- JEP targeted to JDK 28: 543: Structured Concurrency
- JEP targeted to JDK 28: 546: Adaptive Heap Sizing for ZGC
- Episode 72 “OpenJDK Bug Fixing, JavaOne, and JDK 28” [IJN]
- JEP targeted to JDK 28: 545: Faster Startup and Warmup with ZGC
-
Everyday JSON in Java
- JEP targeted to JDK 28: 542: PEM Encodings of Cryptographic Objects
- Making Arena.ofConfined() Even Cheaper in JDK 28
- JEP targeted to JDK 28: 540: Simple JSON API (Incubator)
- Faster Post-Quantum Cryptography with JDK Intrinsics
- JEP targeted to JDK 28: 541: Deprecate the macOS/x64 Port for Removal
- JEP targeted to JDK 28: 539: Strict Field Initialization in the JVM (Preview)
- Quality Outreach Heads-up - JDK 28: Rich JavaDoc Notes
- JEP targeted to JDK 28: 401: Value Objects (Preview)
- Acceleration of Curve25519 Field Operations with Java Software and Intrinsics
- Quality Outreach Heads-up - JDK 28: Named Group Information Captured in the TLSHandshake JFR Event
- Episode 66 “JSON API, Valhalla Progress, LTS ❤️ PQC” [IJN]
- Quality Outreach Heads-up - JDK 28: jlink cacerts plugin
- Episode 62 “JDK 27 + Valhalla, Now! + Hackathon” [IJN]
JDK 27
- Performance Improvements in JDK 27
- Helidon 27 Released
-
Java 27 Launch Stream
- JDK 27 Security Enhancements
- The Arrival of Java 27!
-
Java 27 Technically Within 2 Minutes
- JDK 27 Runtime Updates Release Notes
- Episode 69 “Declassifying Java 27” [IJN]
- Acceleration of Curve25519 Field Operations with Java Software and Intrinsics
- Newsletter: JDK 27 Rampdown Phase is Closing - Default G1 in All Environments
- Quality Outreach Heads-up - JDK 27: Default G1 in All Environments
- Episode 62 “JDK 27 + Valhalla, Now! + Hackathon” [IJN]
- JEP targeted to JDK 27: 538: PEM Encodings of Cryptographic Objects (3rd Preview)
- JEP targeted to JDK 27: 523: Make G1 the Default Garbage Collector in All Environments
- JEP targeted to JDK 27: 537: Vector API (12th Incubator)
- Newsletter: JDK 27 Approaches Rampdown | Final Field Mutation Warnings Heads-up
- Quality Outreach Heads-up - JDK 27: Numeric Fields in JSON Thread Dumps
- Episode 58 “Java Gets Post-Quantum TLS” [IJN]
- JEP targeted to JDK 27: 531: Lazy Constants (3rd Preview)
- Quality Outreach Heads-up - JDK 27: Post-Quantum Hybrid Key Exchange for TLS 1.3
- Quality Outreach Heads-up - JDK 27: Removal of Deprecated Java Launcher Options
- JEP targeted to JDK 27: 533: Structured Concurrency (7th Preview)
- JEP targeted to JDK 27: 532: Primitive Types in Patterns, instanceof, and switch (5th Preview)
- Quality Outreach Heads-up - JDK 27: Obsolete Translation Resources Removed
- Newsletter: Java 26 Is Now Available | JDK 27 Heads-Ups
-
Java and Post-Quantum Cryptography
- Quality Outreach Heads-up - JDK 27: Removal of 'java.locale.useOldISOCodes' System Property
- Quality Outreach Heads-up - JavaFX 27: Metal Is Now the Default Rendering Pipeline on macOS
- Post-Quantum Hybrid Key Exchange for TLS 1.3
- JEP targeted to JDK 27: 527: Post-Quantum Hybrid Key Exchange for TLS 1.3
- Quality Outreach Heads-up - JDK 27: Removal of ThreadPoolExecutor.finalize()
JDK 26
- Performance Improvements in JDK 26
-
Java 26: Better Language, Better APIs, Better Runtime
- Quality Outreach Heads-up - JDK 26: Warnings About Final Field Mutation
- Newsletter: Java 26 Is Now Available | JDK 27 Heads-Ups
- Episode 54 “How JDK 26 Improves G1's Throughput” [AtA]
-
Java and Post-Quantum Cryptography
-
JavaFX 26 Today
- JDK 26 Security Enhancements
-
Java 26 in definitely UNDER 3 minutes
- The Arrival of Java 26
- Episode 51 “Unboxing Java 26 for Developers” [IJN]
- Episode 49 “LazyConstants in JDK 26” [IJN]
-
Java 26 is Shipping Soon - Inside Java Newscast #108
- HTTP Client Updates in Java 26
- Java 26 for DevOps
- JDK 26 G1/Parallel/Serial GC changes
- Episode 48 “HTTP/3 in Java 26” [AtA]
- Dissecting the CPU-Memory Relationship in Garbage Collection
- Newsletter: JDK 26 Release Candidate | JavaOne and More Heads-Up
- Quality Outreach Heads-up - JDK 26: DecimalFormat Uses the Double.toString(double) Algorithm
-
LazyConstants in JDK 26 - Inside Java Newscast #106
- One Giant Leap: 95% Less Sampling Cost
- Quality Outreach Heads-up - JDK 26: Jlink Compression Plugin Now Handles -c Option Correctly
- On the Boundaries of Final
- JEP targeted to JDK 26: 530: Primitive Types in Patterns, instanceof, and switch (4th Preview)
- Newsletter: JDK 26: Feature Freeze, HTTP/3, and more Heads-Ups
-
All Features in Java 26 - Inside Java Newscast #102
- So Long and Thanks for All the Applets
- JEP targeted to JDK 26: 529: Vector API (11th Incubator)
- JEP targeted to JDK 26: 526: Lazy Constants (Second Preview)
- Quality Outreach Heads-up - JDK 26: HttpClient Supports TLS Named Groups & Signature Schemes
- JEP targeted to JDK 26: 525: Structured Concurrency (6th Preview)
-
Java 26 Warns of Deep Reflection - Inside Java Newscast #101
- JEP targeted to JDK 26: 524: PEM Encodings of Cryptographic Objects (Second Preview)
- JEP targeted to JDK 26: 516: Ahead-of-Time Object Caching with Any GC
- JEP targeted to JDK 26: 500: Prepare to Make Final Mean Final
- JEP targeted to JDK 26: 522: G1 GC: Improve Throughput by Reducing Synchronization
- Quality Outreach Heads-up - JDK 26: HTTP/3 Support Available in HTTP Client API
- JEP targeted to JDK 26: 517: HTTP/3 for the HTTP Client API
- NUMA-Aware Relocation in ZGC
-
Three Upcoming G1 Improvements - Inside Java Newscast #99
- HTTP/3 Support in JDK 26
- Quality Outreach Heads-up - JavaFX 26: Temporary Switch to macOS Metal Rendering Pipeline
- JEP targeted to JDK 26: 504: Remove the Applet API
JDK 25
-
ZGC: A Decade of Redefining Java Performance
-
Native Interoperability with JDK 25 and the FFM API
- Episode 57 “Make Java Safer with Flexible Constructor Bodies” [IJN]
-
Make Java Safer with Flexible Constructor Bodies - Inside Java Newscast #111
-
Java Performance Update: From JDK 21 to JDK 25
- Run Into the New Year with Java’s Ahead-of-Time Cache Optimizations
- New VS Code Extension with Java 25 and Notebooks Support
-
Deep Dive into Gatherers - JEP Cafe #24
- Quality Outreach Heads-up - JDK 25: Consistent Behavior of 'new File("")'
-
Supercharge your JVM Performance with Project Leyden and Spring Boot
- Performance Improvements in JDK 25
-
From JDK 21 to JDK 25 - Java Performance Update 2025
-
What's New in Java 25 in 2 Minutes - Sip of Java
-
Structured Concurrency in Action
- JEPs in JDK 25 Integrated Since JDK 21
-
Reviewing the JDK 25 Release Notes - Inside Java Newscast #98
- JDK 25 Security Enhancements
- JavaFX 25 Highlights
- Newsletter: Java 25 Released & New Leyden EA Builds
-
Java 25 - Launch Stream
- The Arrival of Java 25
-
All API Additions From Java 21 to 25 #RoadTo25
- JDK 25 G1/Parallel/Serial GC changes
-
How to Handle Security Changes in Java 25 #RoadTo25
-
Java 21 ⮕ 25: Performance and Runtime Enhancements #RoadTo25
-
All New Java Language Features Since Java 21 #RoadTo25
-
Ahead-of-Time Computation #RoadTo25
-
How to Upgrade to Java 25 #RoadTo25
- Newsletter: First JDK 25 Release Candidate
- Just Be Lazy
- JEP targeted to JDK 25: 520: JFR Method Timing & Tracing
-
A Sneak Peek at the Stable Values API
- JEP targeted to JDK 25: 518: JFR Cooperative Sampling
- JEP targeted to JDK 25: 515: Ahead-of-Time Method Profiling
-
Java 25 is ALSO no LTS Version - Inside Java Newscast #94
- JEP targeted to JDK 25: 514: Ahead-of-Time Command-Line Ergonomics
-
Java 25 Encodes PEM - Inside Java Newscast #93
- JEP targeted to JDK 25: 507: Primitive Types in Patterns, instanceof, and switch (3rd Preview)
- Quality Outreach Heads-up - JDK 25: Changes in Some File Operation Behaviors on Windows
- JEP targeted to JDK 25: 508: Vector API (10th Incubator)
- FFM vs. Unsafe. Safety (Sometimes) Has a Cost
- JEP targeted to JDK 25: 470: PEM Encodings of Cryptographic Objects (Preview)
- Episode 37 “Efficient Initialization Using Stable Values” [AtA]
- Quality Outreach Heads-up - Separate Metaspace and GC Printing
-
Key Java Language Updates From 2020 to 2025
- Newsletter: JDK 25 Feature Set Is Now Frozen!
-
Java 25 Brings 18 JEPs 😱 Inside Java Newscast #92
- What's new for JFR in JDK 25
- JEP targeted to JDK 25: 506: Scoped Values
- JEP targeted to JDK 25: 510: Key Derivation Function API
- JEP targeted to JDK 25: 513: Flexible Constructor Bodies
- JEP targeted to JDK 25: 505: Structured Concurrency (5th Preview)
-
Structured Concurrency Revamp in Java 25 - Inside Java Newscast #91
- JEP targeted to JDK 25: 512: Compact Source Files and Instance Main Methods
- JEP targeted to JDK 25: 511: Module Import Declarations
- Strings Just Got Faster
-
Finalizing the Java On-ramp - Inside Java Newscast #90
- JEP targeted to JDK 25: 503: Remove the 32-bit x86 Port
- How ZGC Allocates Memory for the Java Heap
- Quality Outreach Heads-up - New Null Checks in Inner Class Constructors
-
Stable Values in Java 25 - Inside Java Newscast #88
- JEP targeted to JDK 25: 502: Stable Values (Preview)
- Quality Outreach Heads-up - JDK 25: Proposal to Deprecate for Removal -UseCompressedClassPointers
JDK 24
-
Java 24, Faster Than Ever
- Episode 36 “Ahead of Time Computation” [AtA]
-
JavaFX 24 and Beyond
- Episode 35 “Stream Gatherers” [AtA]
- JDK 24 Security Enhancements
- JDK 24 G1/Parallel/Serial GC Changes
- Newsletter: Java 24 Is Now Available!
-
Java 24 Release Notes Overview - Security Updates
-
Stream Gatherers - Deep Dive with the Expert
-
Java 24 Release Notes Overview for Operations
- Performance Improvements in JDK 24
- The Arrival of Java 24
-
Java 24 Release Notes Review for Developers - Inside Java Newscast #87
-
Java 24 - Better Language, Better APIs, Better Runtime
-
Scoped Values in Java 24 - Inside Java Newscast #86
- Newsletter: JDK 24 Release Candidate and More Heads-Up
-
Java Resists Quantum Attacks - Inside Java Newscast #85
- Quality Outreach Heads-up - JDK 24: Remote Debugging with jstat and jhsdb Is Deprecated for Removal
-
Java Performance Update
- Peaceful and Bright Future of Integrity by Default in Java
- Episode 33 “JDK 24 and More” [AtA]
- Detoxifying the JDK Source Code
-
Java 24 Performance Improvements and Deprecations - Inside Java Newscast #82
- Quality Outreach Heads-up - JDK 24: Retiring the Security Manager
- Quality Outreach Heads-up - JDK 24: Security Properties Files Inclusion
- Quality Outreach Heads-up - JDK 24: Prepares Restricted Native Access
- JEP Targeted to JDK 24: 501: Deprecate the 32-bit x86 Port for Removal
-
Java 24 Language and API Changes - Inside Java Newscast #81
- JEP Targeted to JDK 24: 498: Warn upon Use of Memory-Access Methods in sun.misc.Unsafe
-
Better Java Streams with Gatherers - JEP Cafe #23
- JEP targeted to JDK 24: 497: Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm
- JEP targeted to JDK 24: 496: Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism
-
Java 24 Stops Pinning Virtual Threads (Almost) - Inside Java Newscast #80
- JEP targeted to JDK 24: 494: Module Import Declarations (2nd Preview)
- JEP targeted to JDK 24: 495: Simple Source Files and Instance Main Methods (4th Preview)
- JEP targeted to JDK 24: 450: Compact Object Headers (Experimental)
- JEP targeted to JDK 24: 491: Synchronize Virtual Threads without Pinning
- JEP targeted to JDK 24: 487: Scoped Values (4th Preview)
- JEP targeted to JDK 24: 486: Permanently Disable the Security Manager
- JEP targeted to JDK 24: 488: Primitive Types in Patterns, instanceof, and switch (Second Preview)
- JEP targeted to JDK 24: 493: Linking Run-Time Images without JMODs
- JEP targeted to JDK 24: 478: Key Derivation Function API (Preview)
- JEP targeted to JDK 24: 490: ZGC: Remove the Non-Generational Mode
- JEP targeted to JDK 24: 485: Stream Gatherers
- JEP 489: Vector API (9th Incubator)
- JEP targeted to JDK 24: 484: Class-File API
- JEP targeted to JDK 24: 475: Late Barrier Expansion for G1
- JEP targeted to JDK 24: 472: Prepare to Restrict the Use of JNI
- New Loom Early-Access Builds with Changes for JDK 24
-
Rethinking Java String Concatenation #JVMLS
JDK 23
-
Modern Java Deep Dive
- Episode 34 “Doc, JavaDoc and Markdown” [AtA]
- Java Visual Studio Code Extension Update
-
Java 23 - Better Language, Better APIs, Better Runtime
- JDK 23 Security Enhancements
-
Reviewing the JDK 23 Release Notes - Inside Java Newscast #76
-
Java 23 - Launch Stream
- The Arrival of Java 23!
- Java Visual Studio Code Extension Update
-
Rethinking Java String Concatenation #JVMLS
- JDK 23 G1/Parallel/Serial GC changes
- Java Visual Studio Code Extension Update
- Quality Outreach Heads-up - JDK 23: Unicode / Removal of COMPAT Locale Provider
- Quality Outreach Heads-up - JDK 23: Re-Specified Subject.getSubject API
- Quality Outreach Heads-up - JDK 23: Changes Default Annotation Processing Policy
-
All Java 23 Features - Inside Java Newscast #70
- JEP targeted to JDK 23: 471: Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal
- JEP targeted to JDK 23: 481: Scoped Values (3rd Preview)
- JEP targeted to JDK 23: 480: Structured Concurrency (Third Preview)
- JEP targeted to JDK 23: 482: Flexible Constructor Bodies (Second Preview)
- JEP targeted to JDK 23: 477: Implicitly Declared Classes and Instance Main Methods (Third Preview)
- Java Visual Studio Code Extension Update
-
Module Imports in Java 23 - Inside Java Newscast #69
- JEP targeted to JDK 23: 467: Markdown Documentation Comments
- JEP targeted to JDK 23: 474: ZGC: Generational Mode by Default
- JEP targeted to JDK 23: 476: Module Import Declarations (Preview)
-
JavaDoc Hits the Markdown on Comments - Inside Java Newscast #68
- JEP 469: Vector API (Eighth Incubator)
- JEP 473: Stream Gatherers (Second Preview)
-
Java 23: Restoring the Balance with Primitive Patterns - Inside Java Newscast #66
- Quality Outreach Heads-up - JDK 20-23: Support for Unicode CLDR Version 42
- JEP targeted to JDK 23: 466: Class-File API (Second Preview)
- JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview)
- Quality Outreach Heads-up - JDK 20-23: Support for Unicode CLDR Version 42
JDK 22
- Java Visual Studio Code Extension Update
- JFR Event to Detect Invocations of Deprecated Methods
- Java Visual Studio Code Extension Update
- Quality Outreach Heads-up - JDK 20-23: Support for Unicode CLDR Version 42
- New Java Platform Extension for VS Code Release
- Pruning Dead Exception Handlers
- JDK 22 in Two Minutes! - Sip of Java
- JDK 22 Security Enhancements
- The Arrival of Java 22!
-
JDK 22 Release Notes Review - Inside Java Newscast #65
-
(Dirty?) Tricks in Java 22 - Inside Java Newscast #64
-
Does Java 22 Kill Build Tools? - Inside Java Newscast #63
-
Foreign Function & Memory API - A (quick) peek under the hood
- JDK 22 G1/Parallel/Serial GC changes
-
Java 22 Previews Statements Before super(...) and this(...) - Inside Java Newscast #62
- Quality Outreach Heads-up - Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal in a Future Release
- Episode 32 “The Panama Effect” [AtA]
- JEP targeted to JDK 22: 462: Structured Concurrency (Second Preview)
- JEP targeted to JDK 22: 458: Launch Multi-File Source-Code Programs
-
Java 22 Unpacking - Inside Java Newscast #59
- JEP targeted to JDK 22: 464: Scoped Values (Second Preview)
- JEP targeted to JDK 22: 423: Region Pinning for G1
- JEP targeted to JDK 22: 457: Class-File API (Preview)
- JEP targeted to JDK 22: 463: Implicitly Declared Classes and Instance Main Methods (Second Preview)
- JEP targeted to JDK 22: 447: Statements before super(...) (Preview)
- JEP targeted to JDK 22: 456: Unnamed Variables & Patterns
- JEP targeted to JDK 22: 460: Vector API (7th Incubator)
- JEP targeted to JDK 22: 459: String Templates (Second Preview)
- Quality Outreach Heads-up - JDK 22: Annotation Processing Behavior Change
- FFM API Goes Final!
-
New Class-File API will make Java Updates easier - Inside Java Newscast #56
- FFM API Provides Massive Performance Improvements for Native Strings
-
JVMLS - Foreign Function & Memory API
- Quality Outreach Heads-up - JLine is now the Default Console Provider
- Quality Outreach Heads-up - Annotation Processing Change
- Foreign Function & Memory API Summer Update
- Quality Outreach Heads-up - JDK 20-23: Support for Unicode CLDR Version 42
JDK 21
- Build a Cloud Compute Instance with Java Concepts
-
Java 21 and Beyond: A Roadmap of Innovations
- Quality Outreach Heads-up - JDK 20-23: Support for Unicode CLDR Version 42
-
Modern Java in Action
- Netflix - Bending Pause Times to Your Will with Generational ZGC
-
Java 17 to 21: A Showcase of JDK Security Enhancements
-
Data-Oriented Programming in Java 21
-
Java 21 and Beyond: A Roadmap of Innovations
-
Data-Oriented Programming in Java 21, Solving the Countdown game - JEP Cafe #22
-
Java Renaissance
- Managing Throughput with Virtual Threads - Sip of Java
- Stepping in 2024 with Powerful Java Language Features
- Deprecated Features in Java 18 thru 21 - Sip of Java
- JDK 21: The GCs keep getting better
- Java SE Security Developer’s Guide
- AutoCloseable HttpClient - Sip of Java
- Locale Updates in Java 21 - Sip of Java
- Introducing Generational ZGC
- Finding CPU Load with JFR - Sip of Java
-
What's New in Java 21 - Oracle TV from CloudWorld 2023
- Improved Emoji Support in Java 21 - Sip of Java
- Package a JavaFX Application as a Platform Specific Executable
- Pattern Matching for switch - Sip of Java
-
Optimizing your equals() methods with Pattern Matching - JEP Cafe #21
- Hazelcast Jet on Generational ZGC
- Record Patterns in Java 21 - Sip of Java
- Solving the Countdown problem with Java 21's Language Features
- Virtual Threads Explained - Sip of Java
- Quality Outreach Heads-up - JDK 22: Annotation Processing Behavior Change
- JDK Tool Access from JShell - Sip of Java
-
Java 21… and Beyond
- Using JAXB in Custom Ant Tasks on Recent Java Versions
- Generational ZGC - Sip of Java
-
Building and Deploying Java Client Desktop Applications with JDK 21 and Beyond
-
With Java 21, Your Code Runs Even Faster but How is that Possible?
- What is… a Concurrent Undo Cycle
-
Java 21 is an explosive release! 💣💥
- Sequenced Collections API - Sip of Java
- JFR View Command - Sip of Java
- My Favorite JDK 21 Feature: Javadoc Search URL
- JDK 21 Security Enhancements
-
JDK 21 Release Notes - Inside Java Newscast #55
- Virtual Threads: An Adoption Guide
- The Arrival of Java 21!
- JDK 21 Release - Sip of Java
-
Java 21 Brings Full Pattern Matching #RoadTo21
- Java Records are "Trusted" and Consequently Faster
-
Java 21 Security #RoadTo21
-
Java 21 API Changes #RoadTo21
-
Java 21 Tool Enhancements: Better Across the Board #RoadTo21
-
Java 21 JVM and GC Improvements #RoadTo21
-
Java 21 new feature: Virtual Threads #RoadTo21
-
Upgrading from Java 17 to 21 #RoadTo21
-
JVMLS - Foreign Function & Memory API
- G1/Parallel/Serial GC improvements in JDK 21
-
To Java 21 and Beyond!
-
Strengthen your Java App's Defenses with Key Encapsulation Mechanism API - Inside Java Newscast #54
- Quality Outreach Heads-up - Annotation Processing Change
- Foreign Function & Memory API Summer Update
-
What's Arriving for JFR in JDK 21 - Inside Java Newscast #53
-
Java 21 is no LTS Version - Inside Java Newscast #52
-
Java 21 - The Other Side - Inside Java Newscast #51
-
Java 21 New Feature: Sequenced Collections - JEP Cafe #19
-
All That is in Java 21?! - Inside Java Newscast #50
- New JFR `view` Command
-
Script Java Easily in 21 and Beyond - Inside Java Newscast #49
- JEP proposed to target JDK 21: 451: Prepare to Disallow the Dynamic Loading of Agents
- JEP proposed to target JDK 21: 452: Key Encapsulation Mechanism API
- Quality Outreach Heads-up - JDK 21: Sequenced Collections Incompatibilities
- JEP proposed to target JDK 21: 443: Unnamed Patterns and Variables (Preview)
- Quality Outreach Heads-up - JDK 21 - New Network Interface Names on Windows
- JEP proposed to target JDK 21: 445: Unnamed Classes and Instance Main Methods (Preview)
- JEP proposed to target JDK 21: 440: Record Patterns
- JEP proposed to target JDK 21: 441: Pattern Matching for switch
- JEP proposed to target JDK 21: 439: Generational ZGC
- JEP proposed to target JDK 21: 448: Vector API (6th Incubator)
-
Interpolating Strings Like a King in Java 21 - Inside Java Newscast #47
- Episode 31 “Sequenced Collections” [AtA]
- JEP proposed to target JDK 21: 442: Foreign Function & Memory API (3rd Preview)
- JEP proposed to target JDK 21: 444: Virtual Threads
-
Java 21's New (Sequenced) Collections - Inside Java Newscast #45
- Quality Outreach Heads-up - JDK 20-23: Support for Unicode CLDR Version 42
- JEP proposed to target JDK 21: 430: String Templates (Preview)
- JEP proposed to target JDK 21: 431: Sequenced Collections
- JDK 21 - Image Performance Improvements
- Quality Outreach Heads-up - JDK 21: JMX Subject Delegation & Fine-grained Security Deprecation
- JDK 21 - Performance Improvements Revealed
JDK 20
- Quality Outreach Heads-up - JDK 20-23: Support for Unicode CLDR Version 42
- Deprecated Features in Java 18 thru 21 - Sip of Java
-
What's New in JDK 20?
- JavaDoc JDK 20 Updates - Sip of Java
-
Java Virtual Threads
-
GraalVM Native Image — Faster, Smarter, Leaner
- JDK 20 Release! - Sip of Java
-
Helidon - Microservices on Modern Java
-
Project Panama: Interconnecting the Java Virtual Machine and Native Code
-
JavaFX 20 and Beyond
-
JDK 20 - Reviewing the Enhancements in the Latest JDK Release
-
Java Language Futures, Spring 2023 Edition
- Quality Outreach Heads-up - JDK 20-23: Support for Unicode CLDR Version 42
-
Java 20 Unboxing - Inside Java Newscast #44
- JDK 20 Security Enhancements
-
Java First. Java Always. | Level Up Keynote
- Episode 30 “Preview Features: A Look Back and A Look Ahead” [AtA]
- The Arrival of Java 20!
- G1/Parallel/Serial GC improvements in JDK 20
-
Write performant Java code with the Vector API - JEP Café 18
- JEP proposed to target JDK 20: 438: Vector API (5th Incubator)
- Oracle DevLive: Level Up | Java Developer Day
-
Write Efficient Bug-free and Simple Comparators in Java - JEP Café #17
- Quality Outreach Heads-up - JDK 20: JMX Connections Use an ObjectInputFilter by Default
-
Foreign Function & Memory API Live
- Quality Outreach Heads-up - JDK 20: Deprecate URL Public Constructors
-
From Java Security with Love - Inside Java Newscast #42
- Java 20 - An Almost Infinite Memory Segment Allocator
-
From ThreadLocal to ScopedValue with Loom - JEP Café #16
- Another Panama Update
- Java 20 - Colossal Sparse Memory Segments
- Running and Building Gradle with Different JDKs - Sip of Java
- Java 20 - Sneak Peek on the Foreign Function & Memory API
-
Glimpse at Java 20: Pattern Matching, Concurrent Programming and Valhalla - Inside Java Newscast #38
- Quality Outreach Heads-up - JDK 20: java.net.URL parsing fix & behavior change
- Episode 27 “JavaFX” [AtA]
- Quality Outreach Heads-up - JDK 20: Disable the Legacy Parallel Class Loading Workaround …
- Quality Outreach Heads-up - JDK 20: Thread.stop(), Thread.suspend() and Thread.resume() degradation
-
Java 17 to 20 Pattern Matching full tutorial with Records, Instanceof and Switch - JEP Café #14
- Quality Outreach Heads-up - JDK 20 - Support for 1.7 source and target removed from javac
- Concurrent Marking in G1
JDK 19
- Deprecated Features in Java 18 thru 21 - Sip of Java
-
From Java Security with Love - Inside Java Newscast #42
-
24 Java Features You Missed In 2022 - Inside Java Newscast #39
- Running and Building Gradle with Different JDKs - Sip of Java
- Pre-Allocated Methods for HashMap and HashSet - Sip of Java
-
The Age of Virtual Threads
-
Java 19 Overview
-
Loom in the Java Ecosystem - Inside Java Newscast #34
- AppCDS Autogenerate - Sip of Java
- Quality Outreach Heads-up - JDK 19 - Double.toString() and Float.toString() changes
- Virtual Threads: New Foundations for High-Scale Java Applications
- JDK 19 Security Enhancements
- G1/Parallel/Serial GC improvements in JDK 19
-
Moving Java Forward with Java 19
- Episode 26 “Java 19 is Here!” [AtA]
- JDK 19 Release - Sip of Java
- The Arrival of Java 19!
-
JavaOne Preview | Streamlining Large-Scale Java Development
- Helidon Níma — Helidon on Virtual Threads
-
Java 19 in Action - Inside Java Newscast #33
- airhacks.fm: Java 19 Millions of Threads in No Time
- Concurrent Marking in G1
-
Java Asynchronous Programming Full Tutorial with Loom and Structured Concurrency - JEP Café #13
- Unifying Memory Addresses and Memory Segments
-
Launching 10 millions virtual threads with Loom - JEP Café #12
- Introduction to Project Panama - Part 2: Variadic Functions
-
Java 19 - The Best Java Release? - Inside Java Newscast #27
-
Java 19 Virtual Threads - JEP Café #11
- Introduction to Project Panama - Part 1: "Hello World"
-
Deconstructing Records in Pattern Matching - Inside Java Newscast #26
- JEP proposed to target JDK 19: 428: Structured Concurrency (Incubator)
-
News Grab Bag: Loom Virtual Threads, Lilliput, Pattern Matching, … - Inside Java Newscast #25
- Quality Outreach Heads-up - JEP 425 Virtual Threads (preview) Testing
- JEP proposed to target JDK 19: Record Patterns (Preview)
-
WHEN and NULL In Pattern Matching - Inside Java Newscast #24
- JEP proposed to target JDK 19: 425: Virtual Threads (Preview)
- Quality Outreach Heads-up - New default macOS Rendering Pipeline
- New candidate JEP: 426: Vector API (Fourth Incubator)
- JEP targeted to JDK 19: 422: Linux/RISC-V Port
- New candidate JEP: 424: Foreign Function & Memory API (Preview)
- Quality Outreach Heads-up - JDK 19: Constant class entries ending in '/'
JDK 18
- Deprecated Features in Java 18 thru 21 - Sip of Java
- In-memory HttpServer Handler
-
24 Java Features You Missed In 2022 - Inside Java Newscast #39
- Testing Clean Cleaner Cleanup
- Replacing Finalizers with Cleaners
- Runtimes Updates Post-JDK 11 - Sip of Java
-
Modern Java Delivery: Java 17, 18 and Open JDK
-
JDK 8 to JDK 18 in Garbage Collection: 10 Releases, 2000+ Enhancements
- ZGC - What's new in JDK 18
- Why Write an Empty finalize() Method?
- JavaDoc Updates - Sip of Java
- Java 18’s Simple Web Server
- JavaDoc Code Snippet API - Sip of Java
-
The Simple Web Server in JDK 18
-
New in JDK 18: Reviewing Enhancements in the Latest JDK Release
-
Moving Java Forward Keynote
-
Java Is Fast! - Inside Java Newscast #22
- `jextract` Standalone Repository
- Programmer's Guide to Snippets
- JDK 18 Security Enhancements
- Episode 23 “Java 18 is Here!” [AtA]
- The Arrival of Java 18!
- G1/Parallel/Serial GC improvements in JDK 18
-
All About JDK 18 - Inside Java Newscast #21
- Episode 22 “JEP 408 - Simple Web Server” [AtA]
- Card Table Card Size Shenanigans
-
Compiled & Tested Code In Javadoc - Inside Java Newscast #20
- Quality Outreach Heads-up - JDK 18: JEP 421
- Episode 21 “JEP 421 and Finalization Deprecation” [AtA]
- Quality Outreach Heads-up - JDK 18: JEP 400
- Quality Outreach Heads-up - JDK 18: JEP 411
- Working with the Simple Web Server
-
Simple Web Server - Inside Java Newscast
- JEP proposed to target JDK 18: 421: Deprecate Finalization for Removal
- Quality Outreach Heads-up - JDK 18: JEP 416
- Java Value Layout Constants
-
Records, Sealed Classes and Pattern Matching
- JEP proposed to target JDK 18: 419: Foreign Function & Memory API (Second Incubator)
- JEP proposed to target JDK 18: 420: Pattern Matching for switch (Second Preview)
- Heap Regions X-Large
-
What Happens to Finalization in JDK 18? - Inside Java Newscast
- JEP proposed to target JDK 18: 418: Internet-Address Resolution SPI
- JDK 18 augmented `javac -Xlint:serial` checks
- JEP proposed to target JDK 18: 416: Reimplement Core Reflection with Method Handles
- Faster Charset Encoding
-
Java 17… more videos, UTF-8 by default in Java 18 - Inside Java Newscast #13
- JEP proposed to target JDK 18: 408: Simple Web Server
- JEP 400 and the Default Charset
- JEP proposed to target JDK 18: 417: Vector API (Third Incubator)
- JEP proposed to target JDK 18: 413: Code Snippets in Java API Documentation
- JEP proposed to target JDK 18: 400: UTF-8 by Default
- A few updates to JEP 411: Deprecate the Security Manager for Removal
JDK 17
- What is… a Concurrent Undo Cycle
-
Write Efficient Bug-free and Simple Comparators in Java - JEP Café #17
- Script Friendly JDK Download URLs - Sip of Java
-
Java 17 to 20 Pattern Matching full tutorial with Records, Instanceof and Switch - JEP Café #14
-
GraalVM in OpenJDK and More JavaOne Announcements - Inside Java Newscast #36
- JFR Configuration Improvements
- JFR Improved Ergonomics
-
Modern Java Delivery: Java 17, 18 and Open JDK
-
Leverage Java 17 New Features to Create Your Wordle Checker - JEP Café #10
-
Refactoring Java 8 code with Java 17 new features - JEP Café #9
-
Java 17 Deep Dive
- JDK 17 Script Friendly URLs
- Client Applications Configuration with Oracle JDK 11+
-
String Concatenation - JEP Café #7
- JDK Migration Guide
- GC progress from JDK 8 to JDK 17
-
Records, Sealed Classes and Pattern Matching
-
Factory Methods for Collections - JEP Café #6
-
To Java 17 and Beyond!
-
Java Experts Spill the Beans
-
11 Tricks From dev.java - Inside Java Newscast #14
- Faster Charset Encoding
-
Java 17… more videos, UTF-8 by default in Java 18 - Inside Java Newscast #13
- Serialization Filters - Sip of Java
-
Learn Java 17 with IntelliJ IDEA
-
G1: To Infinity and Beyond
-
Meet the Java Experts Panel
- ZGC - What's new in JDK 17
- JEPs in JDK 17 integrated since JDK 11
-
Making Use of Sealed Classes in Java
-
JDK 17: The Next Long-Term Support (LTS) Release Is Here
- Episode 20 “Java 17 is Here! Part 2” [AtA]
-
Pattern Matching in Java 17 and Beyond
-
The Vector API in JDK 17
- G1 GC & Parallel GC Improvements in JDK 17
-
Faster LTS and free JDK with Java 17 - Inside Java Newscast #12
- JDK 17 Security Enhancements
- Introducing the Free Java License
- Java 17 / JDK 17: General Availability
- Moving Java Forward Even Faster
- Moving the JDK to a Two Year LTS Cadence
- Episode 19 “Java 17 is Here! Part 1” [AtA]
- The Arrival of Java 17!
- The art of long-term support and what LTS means for the Java ecosystem
-
Inside Java Newscast #10
-
Inside Java Newscast #9
-
Sealed Classes - JEP Café #2
- A few updates to JEP 411: Deprecate the Security Manager for Removal
- Episode 18 “Java's steady march towards strong encapsulation” [AtA]
- Episode 17 “Pattern Matching for switch” [AtA]
-
Inside Java Newscast #6
- Experimenting with JFR Mirror Events
- JEP proposed to target JDK 17: 415: Context-Specific Deserialization Filters
- Updates to JEP 411: Deprecate the Security Manager for Removal
-
Inside Java Newscast #5
- JEP proposed to target JDK 17: 306: Restore Always-Strict Floating-Point Semantics
- JEP proposed to target JDK 17: 411: Deprecate the Security Manager for Removal
- JEP proposed to target JDK 17: 406: Pattern Matching for switch (Preview)
- Large pages and Java
- Need help testing new Selector implementation on Windows
- JEP proposed to target JDK 17: 403: Strongly Encapsulate JDK Internals
- JEP proposed to target JDK 17: 407: Remove RMI Activation
- JEP proposed to target JDK 17: 412: Foreign Function & Memory API (Incubator)
- The meaning, or not, of “LTS”
- JEP proposed to target JDK 17: 414: Vector API (Second Incubator)
- Improving the Ideal Graph Visualizer for better comprehension of Java's main JIT compiler
- Foreign Memory Access and NIO channels - Going Further
- Episode 16 “Let's Discuss JDK and Networking” [AtA]
-
Inside Java Newscast #2
-
Java Language Futures: Spring 2021
- New candidate JEP: 409: Sealed Classes
- New candidate JEP: 410: Remove the Experimental AOT and JIT Compiler
- Important clarification on the com.sun namespace
- Proposed schedule for JDK 17
-
Inside Java Newscast #1
- JEP proposed to target JDK 17: 391: macOS/AArch64 Port
- JEP proposed to target JDK 17: 398: Deprecate the Applet API for Removal
- Monitoring Deserialization to Improve Application Security
- Welcome 20% less memory usage for G1 remembered sets - Prune collection set candidates early
- JEP proposed to target JDK 17: 382: New macOS Rendering Pipeline
- Faster Charset Decoding
- JEP proposed to target JDK 17: 356: Enhanced Pseudo-Random Number Generators
- Towards OpenJDK 17
- Programmer's Guide To Text Blocks
JDK 16
-
The Packaging Tool aka `jpackage` - JEP Café #4
-
Fast and Secure Inter-process Communication on JDK 16 - Inside Java Newscast #11
-
Inside Java Newscast #9
-
Inside Java Newscast #7
- Episode 18 “Java's steady march towards strong encapsulation” [AtA]
- Episode 17 “Pattern Matching for switch” [AtA]
- Remote Recording Stream
- Why Java's Records Are Better* Than Lombok's @Data and Kotlin's Data Classes
-
Inside Java Newscast #3
- Faster warmup, smaller downloads, JDK 16 — GraalVM 21.1 is here!
-
How Java Records Can Improve Serialization
- Episode 16 “Let's Discuss JDK and Networking” [AtA]
-
Inside Java Newscast #2
-
Java Language Futures: Spring 2021
- Record Serialization in Practice
-
The Vector API: SIMD Programming in Java
-
Java 16 - Consistency and Innovation
- Important clarification on the com.sun namespace
-
Inside Java Newscast #1
- ZGC - What's new in JDK 16
- JDK 16 Security Enhancements
- Episode 15 “Java 16 is Here!” [AtA]
- The Arrival of Java 16!
- G1 & Parallel GC Improvements in JDK 16
- Simpler Serialization with Records
-
JDK 16 for the record(s)
- Episode 14 “Records Serialization” [AtA]
- Code-First Unix Domain Socket Tutorial
-
When Records Met Serialization: A Happy Tale
- Episode 12 “jpackage” [AtA]
- JDK 16 enters the Release Candidate phase
- JEP-380: Unix domain socket channels
- Java Feature Spotlight: Pattern Matching
- Investigating MD5 overheads
- Specs update
- Episode 10 “Project Panama - The Foreign Linker API” [AtA]
- Episode 9 “Project Panama - The Foreign Memory Access API” [AtA]
- Towards OpenJDK 17
- JEP proposed to target JDK 16: 390: Warnings for Value-Based Classes
- Metaspace in OpenJDK 16
- JEP proposed to target JDK 16: 397: Sealed Classes (Second Preview)
- JEP proposed to target JDK 16: 396: Strongly Encapsulate JDK Internals by Default
- Biased locking Obsoletion update
- Episode 7 “The Vector API” [AtA]
- JEP proposed to target JDK 16: 389: Foreign Linker API (Incubator)
- Biased locking Obsoletion
- New candidate JEP: 397: Sealed Classes (Second Preview)
- Episode 6 “Project Skara” [AtA]
- JEP proposed to target JDK 16: 394: Pattern Matching for instanceof
- JEP proposed to target JDK 16: 393: Foreign-Memory Access API (Third Incubator)
- JEP proposed to target JDK 16: 392: Packaging Tool
- JEP proposed to target JDK 16: 380: Unix-Domain Socket Channels
- JEP proposed to target JDK 16: 395: Records
- Proposed schedule for JDK 16
- Episode 5 “The Z Garbage Collector (ZGC)” [AtA]
- The Vector API (Incubator) is now integerated!
- New candidate JEP: 395: Records
- New candidate JEP: 394: Pattern Matching for instanceof
- Episode 4 “Record Classes” [AtA]
- New candidate JEP: 393: Foreign-Memory Access API (3rd Incubator)
- JEP proposed to target JDK 16: 376: ZGC: Concurrent Thread-Stack Processing
- JEP proposed to target JDK 16: 386: Alpine Linux Port
- JEP proposed to target JDK 16: 387: Elastic Metaspace
- Finalizing in JDK 16 - Pattern matching for instanceof
- JEP proposed to target JDK 16: 338: Vector API (Incubator)
- Finalizing in JDK 16 - Pattern matching for instanceof
- Finalizing in JDK 16 - Records
- JEP 347: Adopt C++14 Language Features in the JDK
- More detail on the SCM transition plans for JDK 16
JDK 15
- Update on 64-bit ARM Support for Oracle OpenJDK and Oracle JDK
- Episode 6 “Project Skara” [AtA]
- Episode 5 “The Z Garbage Collector (ZGC)” [AtA]
- JDK 15 Security Enhancements
- Episode 4 “Record Classes” [AtA]
- Incompatibilities with JDK 15 CharSequence.isEmpty
- ZGC - What's new in JDK 15
- The Arrival of Java 15
- Episode 2 “Java 15 is Here!” [AtA]
- JDK 15 G1/Parallel GC changes
- JEP 381: Remove the Solaris and SPARC Ports - targeted to JDK 15
- JEP 360: Sealed Classes (Preview) - targeted to JDK 15
- More detail on the SCM transition plans for JDK 16
- Java Feature Spotlight: Text Blocks
- Zip lookups - a word from the sponsor
- Improving G1 out-of-the-box performance
JDK 14
- Java 14 - Preview Features and their APIs
- Java Feature Spotlight: Text Blocks
- Lombok getter/setter vs. Records
- Improving G1 out-of-the-box performance
- Building OpenCV 4 with Java Support
- ZGC - What's new in JDK 14
- JDK 14 Security Enhancements
- The Arrival of Java 14!
- Java Feature Spotlight: Records
-
G1: To infinity and beyond
- OpenJDK Startup - Late 2019 Edition
-
Create Native Packages to Deploy Java Applications
- Preview APIs for preview features -- JDK 14+
JDK 13
Artificial Intelligence
-
Reflect, Transform, Accelerate: Bringing GPU Computing to Java
-
How Does Java Fit Into the World of AI—and How Can It Become an Even Better Fit?
-
Java - The Year of the Runtime!
-
Agent Helidon: License to Scale
- Evolving a Java MCP Server During MCP Specification Upgrades
- Pairing In-Process and Hosted Embeddings for Java MCP Tool Development
- Episode 63 “AI Solutions with Spring AI 2.0” [I/O]
-
How Agentic Coding Can Help You Migrate Java Applications Faster
-
Intelligent JVM Monitoring: Combining JDK Flight Recorder with AI
- Agentic AI Workflows for OpenJDK Development
-
Caching for Agentic Java Systems: Internal, Distributed, and Semantic
-
Reflecting on HAT: A Project Babylon Case Study
-
Intelligent JVM Monitoring: Combining JDK Flight Recorder with AI
-
Level Up Your LangChain4j Apps for Production
-
Agent Orchestration with LangChain4J
-
ONNX Based Generative AI LLMs in Java with Project Babylon
-
AI World: Georges Saab Unveils Java 25 for AI and Cloud
-
Writing GPU-Ready AI Models in Pure Java with Babylon
- AI World: Everything You Need to Know About AI and the Java Platform
-
Java for AI
-
Java for AI
-
How Can Machine Learning Assist to Improve JVM Performance
- Evolution of Java Ecosystem for Integrating AI
- JVM Tuning with Machine Learning on Garbage Collection Logs
- Advancing AI by Accelerating Java on Parallel Architectures
-
Java and AI? - Inside Java Newscast #72
Client
- Tutorial: Accessibility in JavaFX
-
The JDK Client Desktop : 2026 and Still Swinging
-
JavaFX 26 Today
- Quality Outreach Heads-up - JavaFX 27: Metal Is Now the Default Rendering Pipeline on macOS
- So Long and Thanks for All the Applets
- JEP targeted to JDK 26: 517: HTTP/3 for the HTTP Client API
- JavaFX 25 Highlights
- Quality Outreach Heads-up - JavaFX 26: Temporary Switch to macOS Metal Rendering Pipeline
- JEP targeted to JDK 26: 504: Remove the Applet API
-
JavaFX 24 and Beyond
- Quality Outreach Heads-up - New macOS JavaFX Metal Early-Access builds
- Tutorial: Introduction to JavaFX animations
-
Project Wakefield - The JDK Wayland Desktop on Linux
- Package a JavaFX Application as a Platform Specific Executable
-
Java Architects Answer Your Questions
-
JavaFX Notebook
-
Building and Deploying Java Client Desktop Applications with JDK 21 and Beyond
-
JavaFX 20 and Beyond
-
Building and Deploying Java Client Desktop Applications with JDK 17 and Beyond
- Episode 27 “JavaFX” [AtA]
-
GraalVM in OpenJDK and More JavaOne Announcements - Inside Java Newscast #36
- JavaFX 20 Early-Access builds
-
String Templates, JavaFX 19, Deserialization, and more at JavaOne - Inside Java Newscast #32
- Quality Outreach Heads-up - JavaFX Media Enhancements Survey
- Quality Outreach Heads-up - New default macOS Rendering Pipeline
- Client Applications Configuration with Oracle JDK 11+
-
The Packaging Tool aka `jpackage` - JEP Café #4
- CFV: New Project: Wakefield
- Call for Discussion : New Project to support the Wayland display server on Linux
- New candidate JEP: 398: Deprecate the Applet API for Removal
- Project Lanai Early Access Build 10
- JEP proposed to target JDK 17: 382: New macOS Rendering Pipeline
- Episode 12 “jpackage” [AtA]
- Project Lanai Early Access Build 9
- Project Lanai Early Access Build 7
- New Project Lanai Early Access build
- JEP proposed to target JDK 16: 392: Packaging Tool
- New candidate JEP: 392: Packaging Tool
- Standardizing JEP 343 with draft of new JEP - Packaging Tool
- Project Lanai EA build now available - feedback requested.
- Java Client Roadmap Updates
-
Create Native Packages to Deploy Java Applications
Cloud
- Secure, Scalable JVM Diagnostics for Kubernetes with JMS
-
AI World: Georges Saab Unveils Java 25 for AI and Cloud
- AI World: Everything You Need to Know About AI and the Java Platform
- Unlock Powerful Insights with Java Management Service: Introducing Analyze Applications and Major Management Enhancements
- Simplifying Java Runtime Setup in OCI Cloud Shell with the Java Download Toolkit
-
Getting the Most of Your Java Applications - The Value of Java for Enterprises
- JMS - Introducing Oracle Java Releases Public APIs
- Automating Oracle JDK Updates Using JMS' Java Download
- Java Management Service
-
Java's Custom Runtime Builder - jlink - Stack Walker #5
- Downloading Java with JMS
- Open sourcing Jipher for FIPS regulated environments
-
Where the JVM is Entering the Era of AI Performance Tuning!
- New container-discuss@openjdk.org mailing list
- Optimize Java Applications and Simplify Uptaking New JDK Versions with Java Management Service
-
Java Management Service
-
Java into Containers, A Match Made in Heaven?
- Introducing the `oracle-actions/setup-java` GitHub action
- The New Stack - Java Adapts to Cloud Native Computing
- Improving Java Performance on OCI Ampere A1 Compute instances
- Announcing Windows support for Java Management Service
- Be Aware of Your (Container) Surroundings
-
Java in Containers - Part Deux
-
JVMs in Containers - Best Practices
-
The Future of Serverless Java
Community
- Episode 72 “OpenJDK Bug Fixing, JavaOne, and JDK 28” [IJN]
- Episode 67 “Keeping Up With the Java Release Train” [I/O]
- Episode 66 “JSON API, Valhalla Progress, LTS ❤️ PQC” [IJN]
- Episode 65 “Embracing Virtual Threads with Helidon” [I/O]
- Episode 63 “AI Solutions with Spring AI 2.0” [I/O]
- Episode 62 “JDK 27 + Valhalla, Now! + Hackathon” [IJN]
-
Java - The Documentary
- Episode 61 “Scripting JS and Python with Project Detroit” [AtA]
- Episode 60 “How JEPs Drive Java's Evolution” [AtA]
- Episode 56 “Ask the Architects at JavaOne” [AtA]
- The Inside Java Newsletter: New Sponsors for JavaOne! Registration Discount Continues!
- The Inside Java Newsletter: JavaOne 2026: $100 Discount Now!
- Episode 44 “Java, Collections & Generics, BeJUG” [AtA]
- The Inside Java Newsletter: JavaOne Sessions and Keynotes!
- JavaOne 2026 Registration Is Now Open
- The Inside Java Newsletter: Register for JavaOne 2026!
- The Inside Java Newsletter: The Latest on JavaOne 2026
- Episode 41 “From Cowboy Mode to Careful Stewardship” [AtA]
- The Inside Java Newsletter: Java 25 is Live!
- The Inside Java Newsletter: Java 25, AI World, JavaOne 2026!
- The Inside Java Newsletter: JVMLS & JavaOne Sessions!
- JavaOne: Returning to the Bay Area March 17-19, 2026
- Best of Java Feature Face-Off - Celebrating 30 Years of Java: The Programming Language That Changed the World
-
JavaOne'25 Highlights - Inside Java Newscast #89
-
Release Your (Java) Projects Like OpenJDK - Inside Java Newscast #79
-
Developers — Contribute to FOSS Communities Now!
- Episode 25 “JavaOne is Back!” [AtA]
- Episode 11 “How to contribute to OpenJDK” [AtA]
Concurrency
-
Structured Concurrency Looms
- Episode 65 “Embracing Virtual Threads with Helidon” [I/O]
- JEP targeted to JDK 22: 462: Structured Concurrency (Second Preview)
-
Project Loom: Modern scalable concurrency for the Java platform
- New Project Loom Early-Access Builds
- Loom Q&A
- New Project Loom Early-Access Builds
- Virtual Threads use Preemptive Scheduling
- State of Loom
- A New Project Loom Early Access Build
-
Loom: Helping Write Concurrent Applications on the Java Platform
- A lightweight thread is a Thread
-
Java Concurrency, A(nother) Peek Under the Hood
- Early Access Loom Builds
-
Project Loom Update
-
Project Loom: Fibers and Continuations for Java
Core Libraries
-
Everyday JSON in Java
- JEP targeted to JDK 28: 540: Simple JSON API (Incubator)
- Episode 66 “JSON API, Valhalla Progress, LTS ❤️ PQC” [IJN]
- JEP targeted to JDK 27: 531: Lazy Constants (3rd Preview)
- Quality Outreach Heads-up - JDK 27: Removal of 'java.locale.useOldISOCodes' System Property
- Episode 50 “Towards Better Checked Exceptions” [IJN]
- Episode 49 “LazyConstants in JDK 26” [IJN]
- HTTP Client Updates in Java 26
- Episode 48 “HTTP/3 in Java 26” [AtA]
-
Java Serialization: Spooky Action at a Distance - Stack Walker #7
- Quality Outreach Heads-up - JDK 27: Removal of ThreadPoolExecutor.finalize()
- Quality Outreach Heads-up - JDK 26: DecimalFormat Uses the Double.toString(double) Algorithm
-
LazyConstants in JDK 26 - Inside Java Newscast #106
- JEP targeted to JDK 26: 526: Lazy Constants (Second Preview)
-
Deep Dive into Gatherers - JEP Cafe #24
-
Serialization 2 0: A Marshalling Update!
- JEP targeted to JDK 26: 500: Prepare to Make Final Mean Final
-
Integrity by Default
- Quality Outreach Heads-up - JDK 25: Consistent Behavior of 'new File("")'
-
Paths to Support Additional Numeric Types on the Java Platform #JVMLS
-
All API Additions From Java 21 to 25 #RoadTo25
-
The not-so-final word on final #JVMLS
-
HTTP/3 in Java - Inside Java Newscast #96
- Episode 39 “Deprecations & Removals” [AtA]
-
A Sneak Peek at the Stable Values API
-
Java Gets a JSON API - Inside Java Newscast #95
-
Marshalling: Data-Oriented Serialization
- Quality Outreach Heads-up - JDK 25: Changes in Some File Operation Behaviors on Windows
- Episode 37 “Efficient Initialization Using Stable Values” [AtA]
- Towards a JSON API for the JDK
- Episode 35 “Stream Gatherers” [AtA]
-
Sequenced Collections - Deep Dive with the Expert
-
Stream Gatherers - Deep Dive with the Expert
-
Stable Values in Java 25 - Inside Java Newscast #88
- Tutorial: Choosing the Right Implementation Between ArrayList and LinkedList
- JEP targeted to JDK 25: 502: Stable Values (Preview)
- Tutorial: The Gatherer API
- JEP targeted to JDK 24: 485: Stream Gatherers
-
A Sneak Peek at StableValue and SegmentMapper
- JEP targeted to JDK 24: 484: Class-File API
-
Java's Fraught Relationship with Cyclic Object Graphs
-
Serialization - A New Hope
-
Serialization 2.0 with Viktor Klang - Live Q&A at Devoxx BE
-
Future of Collections with Stuart Marks - Live Q&A at Devoxx BE
- Tutorial: The Reflection API
-
Rethinking Java String Concatenation #JVMLS
- Tutorial: Advanced JShell Usage
- Tutorial: Common I/O Tasks in Modern Java
- JEP targeted to JDK 23: 467: Markdown Documentation Comments
-
JavaDoc Hits the Markdown on Comments - Inside Java Newscast #68
- JEP 473: Stream Gatherers (Second Preview)
- JEP targeted to JDK 23: 466: Class-File API (Second Preview)
- MethodHandle Primer
-
Does Java 22 Kill Build Tools? - Inside Java Newscast #63
- Quality Outreach Heads-up - Java Array Element Alignment: Weakening of Some Methods Guarantees ?
- Deprecated Features in Java 18 thru 21 - Sip of Java
- AutoCloseable HttpClient - Sip of Java
- JEP targeted to JDK 22: 458: Launch Multi-File Source-Code Programs
-
Java 22 Unpacking - Inside Java Newscast #59
- Locale Updates in Java 21 - Sip of Java
- JEP targeted to JDK 22: 457: Class-File API (Preview)
- Improved Emoji Support in Java 21 - Sip of Java
-
Better Java Streams with Gatherers - Inside Java Newscast #57
- New candidate JEP: 461: Stream Gatherers (Preview)
-
Java Architects Answer Your Questions
-
Teaching Old Streams New Tricks
-
ArrayList vs. LinkedList - JEP Cafe #20
-
New Class-File API will make Java Updates easier - Inside Java Newscast #56
- Sequenced Collections API - Sip of Java
- New candidate JEP: 457: Class-File API (Preview)
- My Favorite JDK 21 Feature: Javadoc Search URL
-
Java 21 API Changes #RoadTo21
-
JVMLS - A Classfile API for the JDK
- Quality Outreach Heads-up - JLine is now the Default Console Provider
- Gathering the Streams
- Quality Outreach Heads-up - On The Importance of Testing With Early-Access Build
-
Java 21 New Feature: Sequenced Collections - JEP Cafe #19
- Collections Utility Class - Sip of Java
- Objects Utility Class - Sip of Java
- JavaDoc JDK 20 Updates - Sip of Java
- Quality Outreach Heads-up - JDK 21: Sequenced Collections Incompatibilities
- Arrays Utility Class - Sip of Java
- Episode 31 “Sequenced Collections” [AtA]
-
Java 21's New (Sequenced) Collections - Inside Java Newscast #45
- JEP proposed to target JDK 21: 431: Sequenced Collections
- The Importance of Writing Stuff Down
-
Write Efficient Bug-free and Simple Comparators in Java - JEP Café #17
- JDK 21 - Performance Improvements Revealed
- Tutorial - The Java I/O API
- Using the JShell API to implement a Java Source Browser
-
Java Collections Puzzlers
- New candidate JEP: 431: Sequenced Collections
-
String Templates, JavaFX 19, Deserialization, and more at JavaOne - Inside Java Newscast #32
- Internationalization in Java - Sip of Java
-
Sequenced Collections, Purity, and more at JavaOne - Inside Java Newscast #31
- JShell the Java REPL - Sip of Java
- The new HTTP Client API - Sip of Java
- Testing Clean Cleaner Cleanup
- Replacing Finalizers with Cleaners
- Scripting with Java - Sip of Java
- Why Write an Empty finalize() Method?
- JavaDoc Updates - Sip of Java
- JavaDoc Code Snippet API - Sip of Java
- Episode 22 “JEP 408 - Simple Web Server” [AtA]
- Quality Outreach Heads-up - JDK 18: JEP 421
-
Where to use Optional - Inside Java Newscast #19
- Episode 21 “JEP 421 and Finalization Deprecation” [AtA]
- Quality Outreach Heads-up - JDK 18: JEP 400
- JEP proposed to target JDK 18: 421: Deprecate Finalization for Removal
- Quality Outreach Heads-up - JDK 18: JEP 416
-
Factory Methods for Collections - JEP Café #6
-
What Happens to Finalization in JDK 18? - Inside Java Newscast
- Why is the `finalize()` method deprecated?
- New candidate JEP: 421: Deprecate Finalization for Removal
- Record Serialization - Sip of Java
- JEP proposed to target JDK 18: 416: Reimplement Core Reflection with Method Handles
- Serialization Filters - Sip of Java
- JEP proposed to target JDK 18: 408: Simple Web Server
- JEP 400 and the Default Charset
- Episode 20 “Java 17 is Here! Part 2” [AtA]
-
Floating-Point Arithmetic : What Every Java Programmer Should Know!
- New candidate JEP: 418: Internet-Address Resolution SPI
- New candidate JEP: 416: Reimplement Core Reflection with Method Handles
- JEP proposed to target JDK 18: 400: UTF-8 by Default
- JEP proposed to target JDK 17: 415: Context-Specific Deserialization Filters
- JEP proposed to target JDK 17: 306: Restore Always-Strict Floating-Point Semantics
- New candidate JEP: 415: Context-Specific Deserialization Filters
- ReversibleCollection proposal
- New candidate JEP: 408: Simple Web Server
- New candidate JEP: 407: Remove RMI Activation
- New candidate JEP: 400: UTF-8 by Default
- JEP proposed to target JDK 17: 356: Enhanced Pseudo-Random Number Generators
- RFE: Add Stream.toList() method
- JEP proposed to target JDK 16: 380: Unix-Domain Socket Channels
- Incompatibilities with JDK 15 CharSequence.isEmpty
-
Collections Refueled
- Scanner is a Weird but Useful Beast
-
Collections Corner Cases
Education
Garbage Collectors
- JEP targeted to JDK 28: 546: Adaptive Heap Sizing for ZGC
- JEP targeted to JDK 28: 545: Faster Startup and Warmup with ZGC
- The Limitations of Running a Workload Generator In the Same JVM as the System-Under-Test
-
Principles of Memory Management in Java
- Quality Outreach Heads-up - JDK 27: Default G1 in All Environments
-
ZGC: A Decade of Redefining Java Performance
- Simplifying Weak Reference Processing in ZGC
- Episode 59 “Java *is* Memory Efficient” [AtA]
- JEP targeted to JDK 27: 523: Make G1 the Default Garbage Collector in All Environments
- Episode 54 “How JDK 26 Improves G1's Throughput” [AtA]
- JDK 26 G1/Parallel/Serial GC changes
- Dissecting the CPU-Memory Relationship in Garbage Collection
-
Garbage Collection in Java: Choosing the Correct Collector
- JEP targeted to JDK 26: 516: Ahead-of-Time Object Caching with Any GC
- JEP targeted to JDK 26: 522: G1 GC: Improve Throughput by Reducing Synchronization
- NUMA-Aware Relocation in ZGC
-
Three Upcoming G1 Improvements - Inside Java Newscast #99
-
Evolving ZGC's Pointer Color Palette #JVMLS
- JDK 25 G1/Parallel/Serial GC changes
- GC-Agnostic Load Barriers for Ahead-of-Time Compilation
-
ZGC - Paving the GC On-Ramp
- Quality Outreach Heads-up - Separate Metaspace and GC Printing
-
Java 24, Faster Than Ever
-
Mastering JVM Memory Troubleshooting - From OutOfMemoryErrors to Leaks
-
Garbage Collection in Java: The Performance Benefits of Upgrading
- How ZGC Allocates Memory for the Java Heap
- JDK 24 G1/Parallel/Serial GC Changes
- New Write Barriers for G1
-
Java 24 Release Notes Overview for Operations
-
How Can Machine Learning Assist to Improve JVM Performance
-
Garbage Collection in Java - The progress since JDK 8
- Quality Outreach Heads-up - JDK 25: Proposal to Deprecate for Removal -UseCompressedClassPointers
- JVM Tuning with Machine Learning on Garbage Collection Logs
- Using Buddy Allocators to Reduce Inter-Page Fragmentation in ZGC
- Mark–Scavenge: Waiting for Trash to Take Itself Out
- ZGC Automatic Heap Sizing #JVMLS
- JEP targeted to JDK 24: 490: ZGC: Remove the Non-Generational Mode
- JEP targeted to JDK 24: 475: Late Barrier Expansion for G1
-
Java's Fraught Relationship with Cyclic Object Graphs
-
Project Lilliput - Beyond Compact Headers #JVMLS
- JDK 23 G1/Parallel/Serial GC changes
- Addressing Fragmentation in ZGC through Custom Allocators
- JEP targeted to JDK 23: 474: ZGC: Generational Mode by Default
- JDK 22 in Two Minutes! - Sip of Java
- Netflix - Bending Pause Times to Your Will with Generational ZGC
- When Should a Compiler Expand Garbage Collection Barriers?
- JDK 22 G1/Parallel/Serial GC changes
- JDK 21: The GCs keep getting better
-
Java 22 Unpacking - Inside Java Newscast #59
- JEP targeted to JDK 22: 423: Region Pinning for G1
- Introducing Generational ZGC
- Hazelcast Jet on Generational ZGC
-
Reducing P99 Latencies with Generational ZGC
-
G1: Java's Default Garbage Collector - Stack Walker #4
- Generational ZGC - Sip of Java
- What is… a Concurrent Undo Cycle
-
Java 21 JVM and GC Improvements #RoadTo21
-
JVMLS - Generational ZGC and Beyond
- G1/Parallel/Serial GC improvements in JDK 21
- Optimizing Memory Utilization with Automated Heap Sizing in ZGC
- Preserving the Mental Map when Visualizing Dynamic Graphs
-
All That is in Java 21?! - Inside Java Newscast #50
- UseDynamicNumberOfCompilerThreads and Memory Footprint
-
Save 10-20% Memory With Compact Headers - Inside Java Newscast #48
- JEP proposed to target JDK 21: 439: Generational ZGC
-
Z Garbage Collector: The Next Generation
- Throughput Analysis of Safepoint-attached Barriers in a Low-latency Garbage Collector
- G1/Parallel/Serial GC improvements in JDK 20
-
ZGC : Java’s Highly Scalable Low-Latency Garbage Collector - Stack Walker #1
-
ZGC - The Future of Low-Latency Garbage Collection Is Here
- Quality Outreach Heads-up - New Generational ZGC Early Access Builds
- Frequent Full GCs
-
Generational ZGC - Inside Java Newscast #37
- Generational ZGC Early-Access builds
- G1/Parallel/Serial GC improvements in JDK 19
- G1 Pre-Barrier Implementation
- Concurrent Marking in G1
- The Serial Garbage Collector - Sip of Java
- The Parallel Garbage Collector - Sip of Java
- Mitigate the relocation degradations for cache locality improvement algorithm
- Episode 24 “Towards Generational ZGC!” [AtA]
- The G1 Garbage Collector - Sip of Java
- JDK GCs Comparison - Sip of Java
-
Concurrent Thread-stack Processing in the Z Garbage Collector
- ZGC, the JDK's Newest Garbage Collector - Sip of Java
-
JDK 8 to JDK 18 in Garbage Collection: 10 Releases, 2000+ Enhancements
- ZGC - What's new in JDK 18
-
ZGC - The Future of Low-Latency Garbage Collection Is Here
- G1/Parallel/Serial GC improvements in JDK 18
- Card Table Card Size Shenanigans
- New candidate JEP: 423: Region Pinning for G1
- Understanding Metaspace and Class Space GC Log Entries
- GC progress from JDK 8 to JDK 17
- Heap Regions X-Large
-
G1: To Infinity and Beyond
- ZGC - What's new in JDK 17
- G1 GC & Parallel GC Improvements in JDK 17
- Large pages and Java
- ZGC - What's new in JDK 16
- G1 & Parallel GC Improvements in JDK 16
- Welcome 20% less memory usage for G1 remembered sets - Prune collection set candidates early
- NUMA-Aware Memory Allocation for G1 GC
- Episode 5 “The Z Garbage Collector (ZGC)” [AtA]
- JEP proposed to target JDK 16: 376: ZGC: Concurrent Thread-Stack Processing
- ZGC - What's new in JDK 15
-
ZGC: The Next Generation Low-Latency Garbage Collector
- JEP proposed to target JDK 16: 387: Elastic Metaspace
- JDK 15 G1/Parallel GC changes
- Heap Snapshotting
- New candidate JEP: 387: Elastic Metaspace
- ZGC - Using -XX:SoftMaxHeapSize
- How do 'hot and cold' objects behave?
- Compact Forwarding Information
- Oracle, Uppsala University, and KTH in joint JVM research projects
- Improving G1 out-of-the-box performance
- ZGC - What's new in JDK 14
- Making ZGC Production Ready
-
HotSpot Handshaking
-
G1: To infinity and beyond
- A critical question, Zee GC or Zed GC?
- ZGC and tmpfs/hugeltbfs
-
ZGC Concurrent Class Unloading
-
The Z Garbage Collector
-
ZGC : A Scalable Low-Latency Garbage Collector
- Can young generation size impact response times?
HotSpot
- Episode 72 “OpenJDK Bug Fixing, JavaOne, and JDK 28” [IJN]
-
Java - The Year of the Runtime!
- JEP targeted to JDK 28: 541: Deprecate the macOS/x64 Port for Removal
-
Just-In-Time Compilation for Java Performance: Recent and Ongoing Improvements
- Episode 64 “JIT Compiler From the Ground Up” [AtA]
-
SIMD Vectors in the HotSpot JVM - Auto Vectorization and the Vector API
- Simplifying Weak Reference Processing in ZGC
-
Post-Mortem JVM Crash Analysis with jcmd
-
How the JVM Optimizes Generic Code
- Episode 53 “Analyzing Crashed JVMs” [IJN]
-
Analyzing Crashed JVMs - Inside Java Newscast #109
- One Giant Leap: 95% Less Sampling Cost
- On the Boundaries of Final
- Help, My Java Object Vanished (and the GC is Not at Fault)
-
Evolving ZGC's Pointer Color Palette #JVMLS
-
Paths to Support Additional Numeric Types on the Java Platform #JVMLS
- GC-Agnostic Load Barriers for Ahead-of-Time Compilation
-
Auto-Vectorization in HotSpot #JVMLS
- Quality Outreach Heads-up - Separate Metaspace and GC Printing
- JEP targeted to JDK 25: 503: Remove the 32-bit x86 Port
-
Java 24 Release Notes Overview for Operations
- SuperWord (Auto-Vectorization) - Scheduling
- Introduction to HotSpot JVM C2 JIT Compiler, Part 4
- Introduction to HotSpot JVM C2 JIT Compiler, Part 3
- Introduction to HotSpot JVM C2 JIT Compiler, Part 2
- Introduction to HotSpot JVM C2 JIT Compiler, Part 1
- A Deep Dive into JVM Start-up
-
A Deep Dive into JVM Start Up - Stack Walker #6
-
Java's Startup Booster: CDS - Stack Walker #3
- Throughput Analysis of Safepoint-attached Barriers in a Low-latency Garbage Collector
- SuperWord (Auto-Vectorization) - An Introduction
- JVM Logging - Sip of Java
- New candidate JEP: 435: Asynchronous Stack Trace VM API
-
HotSpot Deep Dive - Safepoint
- Mitigate the relocation degradations for cache locality improvement algorithm
- Control-flow based JIT compiler visualization
-
Java Is Fast! - Inside Java Newscast #22
- Quality Outreach Heads-up - JDK 19: Constant class entries ending in '/'
-
Floating-Point Arithmetic : What Every Java Programmer Should Know!
- Brief Introduction to the Template Interpreter in OpenJDK
- "Failed to write core dump"
- Improving the Ideal Graph Visualizer for better comprehension of Java's main JIT compiler
- State of Valhalla, Section 3: JVM Model
- New candidate JEP: 410: Remove the Experimental AOT and JIT Compiler
- Deciphering the stack trace
- Extending the Automatic Vectorization Capabilities of the C2 Compiler
- A crash happened outside the Java Virtual Machine
- Biased locking Obsoletion update
- Biased locking Obsoletion
- New candidate JEP: 387: Elastic Metaspace
-
Invokedynamic for Mere Mortals
-
Java Bytecode Crash Course
-
VM Futures - A Few More Flickers in the Crystal Ball
-
New Bytecodes, New Objects
Integrity by Default
- Quality Outreach Heads-up - JDK 26: Warnings About Final Field Mutation
- Avoiding Final Field Mutation
- Episode 55 “You Must Avoid Final Field Mutation” [IJN]
- On the Boundaries of Final
-
Java 26 Warns of Deep Reflection - Inside Java Newscast #101
- JEP targeted to JDK 26: 500: Prepare to Make Final Mean Final
-
Integrity by Default
- Episode 41 “From Cowboy Mode to Careful Stewardship” [AtA]
-
The not-so-final word on final #JVMLS
- Episode 38 “Integrity by Default” [AtA]
- Peaceful and Bright Future of Integrity by Default in Java
- Quality Outreach Heads-up - JDK 24: Prepares Restricted Native Access
- JEP Targeted to JDK 24: 498: Warn upon Use of Memory-Access Methods in sun.misc.Unsafe
- JEP targeted to JDK 24: 472: Prepare to Restrict the Use of JNI
- Integrity by Default #JVMLS
- Tutorial: Leveraging JDK Tools and Updates to Help Safeguard Java Applications
-
Integrity by Default - Inside Java Newscast #73
- JEP targeted to JDK 23: 471: Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal
- Quality Outreach Heads-up - Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal in a Future Release
- JEP proposed to target JDK 21: 451: Prepare to Disallow the Dynamic Loading of Agents
- JEP proposed to target JDK 17: 403: Strongly Encapsulate JDK Internals
- JEP proposed to target JDK 16: 396: Strongly Encapsulate JDK Internals by Default
JDK Flight Recorder
- Quality Outreach Heads-up - JDK 28: Named Group Information Captured in the TLSHandshake JFR Event
-
The Power of JDK Flight Recorder: Efficient Profiling and Troubleshooting for Java Applications
-
Intelligent JVM Monitoring: Combining JDK Flight Recorder with AI
-
Intelligent JVM Monitoring: Combining JDK Flight Recorder with AI
- JEP targeted to JDK 25: 520: JFR Method Timing & Tracing
- JEP targeted to JDK 25: 518: JFR Cooperative Sampling
- What's new for JFR in JDK 25
- JFR Event to Detect Invocations of Deprecated Methods
-
Introduction to JDK Mission Control
- What's New in JMC 9? - Sip of Java
-
Programmer's Guide to JDK Flight Recorder
- Finding CPU Load with JFR - Sip of Java
- JFR View Command - Sip of Java
-
Java 21 Tool Enhancements: Better Across the Board #RoadTo21
-
What's Arriving for JFR in JDK 21 - Inside Java Newscast #53
- JDK Mission Control 8.3 - Sip of Java
- New JFR `view` Command
-
A Glance At The Java Performance Toolbox
-
JFR: Java's Observability & Monitoring Framework - Stack Walker #2
- JFR Event Stream Stop - Sip of Java
- Using the JFR Event Streaming API in Automated Tests - Sip of Java
- JFR Scrub - Sip of Java
- JFR Configuration Improvements
- JFR Improved Ergonomics
- JFR Event Stream - Sip of Java
- Custom JDK Flight Recorder Events - Sip of Java
-
Inside Java Newscast #9
- Experimenting with JFR Mirror Events
- Remote Recording Stream
-
Monitoring and Troubleshooting Tools in the JDK
- Monitoring Deserialization to Improve Application Security
- Episode 13 “JDK Flight Recorder” [AtA]
-
Introduction to JDK Flight Recorder
-
Continuous Monitoring with JDK Flight Recorder
-
Continuous Monitoring With JDK Flight Recorder
-
Continuous Monitoring with JDK Flight Recorder
-
JFR: the Black Box of Java Applications
- Clarifying some confusion around JFR
Java Language
- Episode 68 “Operator Overloading with Type Classes” [AtA]
-
Better Tools for Immutable Data
-
JavaNext Language Features
- Episode 57 “Make Java Safer with Flexible Constructor Bodies” [IJN]
-
Make Java Safer with Flexible Constructor Bodies - Inside Java Newscast #111
- Episode 52 “Carrier Classes & Discussing Syntax” [AtA]
- Episode 50 “Towards Better Checked Exceptions” [IJN]
- Episode 44 “Java, Collections & Generics, BeJUG” [AtA]
-
Valhalla? Python? Withers? Lombok? - Ask the Architects at JavaOne'25
-
Pattern Matching, Under the Microscope
-
"Just Make All Exceptions Unchecked" - Live Q&A from Devoxx
-
All New Java Language Features Since Java 21 #RoadTo25
-
Growing the Java Language #JVMLS
-
A New Model for Java Object Initialization
- Best of Java Feature Face-Off - Celebrating 30 Years of Java: The Programming Language That Changed the World
- Inside Java’s Language Renaissance
-
Key Java Language Updates From 2020 to 2025
-
Pattern Matching in Java: Better Code, Better APIs
-
Where Is the Java Language Going?
- Quality Outreach Heads-up - New Null Checks in Inner Class Constructors
-
Modern Java Deep Dive
-
Java Language Evolution in 2025 - Inside Java Newscast #84
-
Java Language Futures - Fall 2024 Edition
-
Java in 2024 - #JVMLS keynote
-
How to Read a JDK Enhancement Proposal - Inside Java Newscast #74
- Converting Data Sources to Streams
- Why Update Data-Oriented Programming to Version 1.1?
- When to use Data-Oriented Programming v1.1
- Separate Operations From Data - Data-Oriented Programming v1.1
- Make Illegal States Unrepresentable - Data-Oriented Programming v1.1
-
Java in 2024 - Constant evolution, delivered.
- Model Data, the Whole Data, and Nothing but the Data - Data-Oriented Programming v1.1
- Model Data Immutably and Transparently - Data-Oriented Programming v1.1
- Data-Oriented Programming in Java - Version 1.1
-
(Dirty?) Tricks in Java 22 - Inside Java Newscast #64
- Uniform handling of failure in switch
- Pattern Matching for switch - Sip of Java
-
Optimizing your equals() methods with Pattern Matching - JEP Cafe #21
- Record Patterns in Java 21 - Sip of Java
- JDK 21 Release - Sip of Java
- Patterns: Exhaustiveness, Unconditionality, and Remainder
- JavaDoc JDK 20 Updates - Sip of Java
-
Glimpse at Java 20: Pattern Matching, Concurrent Programming and Valhalla - Inside Java Newscast #38
- Java Thread Primitive Deprecation FAQ
-
Starting (With) Java, Made Simple - Inside Java Newscast #35
- Paving the on-ramp
- Local Class Improvements - Sip of Java
-
Leverage Java 17 New Features to Create Your Wordle Checker - JEP Café #10
-
Refactoring Java 8 code with Java 17 new features - JEP Café #9
- Exceptions - You don't gotta catch 'em all!
- Java Feature Spotlight: Pattern Matching
- Interview with Brian Goetz
- Pattern features for next iteration
- CodeTools proposal: apidiff
- [pattern-switch] Guards
- Pattern Matching in the Java Object Model
- Array patterns (and varargs patterns)
- Specs update
- Incompatibilities with JDK 15 CharSequence.isEmpty
-
Java Language Futures - Mid 2020 Edition
- Preview APIs in the Java Platform
- Background: how we got the generics we have
-
Java Past, Present, and Future
Modules
- Episode 41 “From Cowboy Mode to Careful Stewardship” [AtA]
- JEP targeted to JDK 24: 493: Linking Run-Time Images without JMODs
-
Module Imports in Java 23 - Inside Java Newscast #69
-
Java's Custom Runtime Builder - jlink - Stack Walker #5
- Using JAXB in Custom Ant Tasks on Recent Java Versions
-
Java Modules in Real Life
-
Java Modules in Real Life
- What Modules Are About
- Episode 18 “Java's steady march towards strong encapsulation” [AtA]
- Important clarification on the com.sun namespace
- New candidate JEP: 403: Strongly Encapsulate JDK Internals
- New candidate JEP: 396: Strongly Encapsulate JDK Internals by Default
- Is there any need to switch to modules when migrating past Java 8? No.
- Stripping debug info from jlink runtime images
- Project Jigsaw is Complete!
-
Modules in One Lesson
-
Modular Development with JDK 9+
-
Safety First
-
The Secret History and Tragic Fate of sun.misc.Unsafe
-
Safety Not Guaranteed: sun.misc.Unsafe and the Quest for Safe Alternatives
Moved By Java
-
Keynote: Java Innovations…Today and Tomorrow
- The Arrival of Java 16!
- Free Training and $25 Certification Exam
- Venkat Subramaniam: Java is changing in a responsible manner
-
Keynote - The Future of Java Is Now
- The Arrival of Java 15
- Episode 3 “The State of Java” [AtA]
- Episode 1 “Welcome to Inside Java!”
- Java in 2020
- Stack Overflow podcast celebrating 25 years of Java
-
Sharat Chander on the Java Community and the Ongoing 25th Anniversary Celebrations
- Announcing Inside.java
-
Java's 25th Birthday Kickoff Event [Moved by Java]
- Our World. Moved by Java.
Networking
- HTTP Client Updates in Java 26
- Episode 48 “HTTP/3 in Java 26” [AtA]
-
Java Serialization: Spooky Action at a Distance - Stack Walker #7
- Quality Outreach Heads-up - JDK 26: HttpClient Supports TLS Named Groups & Signature Schemes
- Quality Outreach Heads-up - JDK 26: HTTP/3 Support Available in HTTP Client API
- HTTP/3 Support in JDK 26
- In-memory HttpServer Handler
- Quality Outreach Heads-up - JDK 21 - New Network Interface Names on Windows
- Quality Outreach Heads-up - JDK 20: Deprecate URL Public Constructors
-
Java Networking Enhancements since JDK 11
- Quality Outreach Heads-up - JDK 20: java.net.URL parsing fix & behavior change
- The new HTTP Client API - Sip of Java
- Episode 22 “JEP 408 - Simple Web Server” [AtA]
- Working with the Simple Web Server
-
Simple Web Server - Inside Java Newscast
- JEP proposed to target JDK 18: 418: Internet-Address Resolution SPI
- JEP proposed to target JDK 18: 408: Simple Web Server
- New candidate JEP: 418: Internet-Address Resolution SPI
-
Fast and Secure Inter-process Communication on JDK 16 - Inside Java Newscast #11
- Experimenting with JFR Mirror Events
- Need help testing new Selector implementation on Windows
- Networking I/O with Virtual Threads - Under the hood
- Episode 16 “Let's Discuss JDK and Networking” [AtA]
- New candidate JEP: 408: Simple Web Server
- JEP-380: Unix domain socket channels
Oracle
- Oracle Java Platform Extension for Visual Studio Code - Version 27.0.0 Is Now Available
- Helidon 27 Released
- The Arrival of Java 27!
- Announcing Oracle Jipher 10.37: FIPS 140-3 Cryptography for Java
- Episode 66 “JSON API, Valhalla Progress, LTS ❤️ PQC” [IJN]
- Post-Quantum Cryptography in Long-Term Support JDK Releases
- Oracle Java Platform Extension for Visual Studio Code - Version 26.0.1 Is Now Available
- Transitioning Java to More Frequent Security Updates
-
Java - The Documentary
- Oracle Java Extension for Visual Studio Code Version 26.0.0 Is Now Available
- Oracle Java Extension for Visual Studio Code Version 25.1.0 Is Now Available
- The Inside Java Newsletter: JavaOne Live Streams & Discounts
- Announcing the Oracle Java Verified Portfolio including Helidon and reintroduction of JavaFX Commercial Support
- The Arrival of Java 26
- Secure, Scalable JVM Diagnostics for Kubernetes with JMS
- The Inside Java Newsletter: New Sponsors for JavaOne! Registration Discount Continues!
- Episode 45 “Announcement - The New Inside Java Podcast”
- The Inside Java Newsletter: JavaOne 2026: $100 Discount Now!
- Oracle Java Extension for Visual Studio Code Version 25.0.1 Is Now Available!
- The Inside Java Newsletter: JavaOne Sessions and Keynotes!
- Episode 43 “Predictability or Innovation? Both!” [AtA]
- New VS Code Extension with Java 25 and Notebooks Support
- The Inside Java Newsletter: Register for JavaOne 2026!
- The Inside Java Newsletter: The Latest on JavaOne 2026
-
AI World: Georges Saab Unveils Java 25 for AI and Cloud
- AI World: Everything You Need to Know About AI and the Java Platform
- Unlock Powerful Insights with Java Management Service: Introducing Analyze Applications and Major Management Enhancements
- Java and AI: Powering Scalable, Enterprise-Grade Intelligence
- The Inside Java Newsletter: Java 25 is Live!
- Oracle Java Extension for Visual Studio Code Version 24.1.2 Is Now Available!
- Detaching GraalVM from the Java Ecosystem Train
- The Arrival of Java 25
- The Inside Java Newsletter: Java 25, AI World, JavaOne 2026!
- The Java Platform Extension is now also available on open-vsx.org
- The Inside Java Newsletter: JVMLS & JavaOne Sessions!
- Simplifying Java Runtime Setup in OCI Cloud Shell with the Java Download Toolkit
- The Inside Java Newsletter: Contribute to Learn.java!
-
Getting the Most of Your Java Applications - The Value of Java for Enterprises
- The Inside Java Newsletter: Java's 30th Birthday & JavaOne!
- Announcing Jipher: Java Cryptographic Service Provider for FIPS Environments
- The Inside Java Newsletter: Devoxx UK & JCON Europe!
- Oracle Java Extension for Visual Studio Code Version 24.0.0 Is Now Available!
-
JavaOne'25 Highlights - Inside Java Newscast #89
- Educating and Nurturing the Next Generation of Java Developers
-
Our World, Moved by Java
- The Arrival of Java 24
- JavaOne 2025 Live Streams
- The Inside Java Newsletter: JavaOne Live Streams!
- Oracle’s Java Platform Extension for Visual Studio Code Passes 2.5 Million Downloads!
- The Inside Java Newsletter: JavaOne Featured Speakers!
- JavaOne 2025 Features Some of the Best Java Experts From Around the World
- The Inside Java Newsletter: Countdown to JavaOne 2025!
- Evolution of Java Ecosystem for Integrating AI
- The Countdown to JavaOne 2025 is On!
- JavaOne: A Lifetime of Java Learning in Three Days
- Registration Is Now Open for JavaOne 2025
- The Inside Java Newsletter: Devoxx Technical Sessions
- New Java Platform Extension for VS Code Release
- The Inside Java Newsletter: Devoxx Technical Q&As
-
Kicking off the Week with Sharat Chander - Live Q&A at Devoxx BE
- The Inside Java Newsletter: Welcome Java 23!
- The Arrival of Java 23!
- The Inside Java Newsletter: JVM Language Summit and Java 23!
- JMS - Introducing Oracle Java Releases Public APIs
-
Java in 2024 - #JVMLS keynote
- The Inside Java Newsletter: Java and AI?
- Build a Cloud Compute Instance with Java Concepts
- Choosing the Right JDK Version: An Unofficial Guide
- The Inside Java Newsletter: Data-Oriented Programming
- The Inside Java Newsletter: Never Ending Innovation
- Java SE Spring 2024 Roadmap Update
- Introducing Oracle Code Assist
-
Java in 2024 - Constant evolution, delivered.
- Automating Oracle JDK Updates Using JMS' Java Download
- The Inside Java Newsletter: Special Issue — JCON Europe
-
Java in 2024 - Constant Change, Delivered
- Java Management Service
- Heads-up: macOS 14 users running on Apple silicon systems should update directly to macOS 14.4.1
- The Arrival of Java 22!
- What is Sustaining Engineering?
-
Java 21 and Beyond: A Roadmap of Innovations
-
Java Renaissance
- Tis the season of…Thanks!
-
Another VS Code Extension for Java?
-
What's New in Java 21 - Oracle TV from CloudWorld 2023
- Downloading Java with JMS
- Open sourcing Jipher for FIPS regulated environments
- The Inside Java Newsletter: Stories from the Community
- Introducing the Oracle Java Platform Extension for Visual Studio Code
-
Java 21… and Beyond
-
Where the JVM is Entering the Era of AI Performance Tuning!
- The Inside Java Newsletter: Building New Tools for Developers
- The Arrival of Java 21!
- The Inside Java Newsletter: Learning, Sharing, Collaborating
-
JVMLS 2023 Keynote
- The Inside Java Newsletter: July 2023 — The Paris JUG Java Day
- The Inside Java Newsletter: June 2023 - An Inspiration for the Future!
- Optimize Java Applications and Simplify Uptaking New JDK Versions with Java Management Service
- Create a multi-platform container image with Java SE Subscription Enterprise Performance Pack
-
Evolving the Security of the Java Platform
-
Java First. Java Always. | Level Up Keynote
- The Arrival of Java 20!
- Oracle DevLive: Level Up | Java Developer Day
-
Java Management Service
-
Glimpse at Java 20: Pattern Matching, Concurrent Programming and Valhalla - Inside Java Newscast #38
- Script Friendly JDK Download URLs - Sip of Java
- Inside Java Newsletter: November 2022
-
GraalVM in OpenJDK and More JavaOne Announcements - Inside Java Newscast #36
-
Inside Java | JavaOne 2022 Technical Keynote
-
Java First. Java Always.
- Introducing the Java SE Subscription Enterprise Performance Pack
-
Java 19 Overview
-
Moving Java Forward with Java 19
- The Arrival of Java 19!
- Inside Java Newsletter: August 2022
-
Video Series: Why I'm excited for JavaOne
-
Moving the Java Community Forward
-
Modern Java Delivery: Java 17, 18 and Open JDK
- Oracle JRE and JDK Cryptographic Roadmap Update
-
New in JDK 18: Reviewing Enhancements in the Latest JDK Release
-
Moving Java Forward Keynote
- JavaOne is back!
- The Arrival of Java 18!
- Introducing the `oracle-actions/setup-java` GitHub action
- The New Stack - Java Adapts to Cloud Native Computing
-
Java SE - Write Once, Run Forever
- JDK 17 Script Friendly URLs
- Client Applications Configuration with Oracle JDK 11+
- JDK Migration Guide
-
Java Experts Spill the Beans
- Improving Java Performance on OCI Ampere A1 Compute instances
- Oracle JRE and JDK Cryptographic Roadmap update
- Java SE 7 End of Extended Support in July 2022
- Announcing Windows support for Java Management Service
-
Java Management Service: What Is It? Why Do You Need It?
-
Meet the Java Experts Panel
-
JDK 17: The Next Long-Term Support (LTS) Release Is Here
-
Keynote - Moving Java Forward
-
Faster LTS and free JDK with Java 17 - Inside Java Newscast #12
- Introducing the Free Java License
- Java 17 / JDK 17: General Availability
- Moving Java Forward Even Faster
- Moving the JDK to a Two Year LTS Cadence
- Episode 19 “Java 17 is Here! Part 1” [AtA]
- The Arrival of Java 17!
- The art of long-term support and what LTS means for the Java ecosystem
- Oracle JRE and JDK Cryptographic Roadmap
-
Keynote: Java Innovations…Today and Tomorrow
- JDK Mission Control version 8.0.0 (JMC 8) is now available
- The Arrival of Java 16!
- Free Training and $25 Certification Exam
- Containerized Java Advanced Management Console
- Oracle JRE and JDK Cryptographic Roadmap
- Oracle JRE and JDK Cryptographic Roadmap
- Update on 64-bit ARM Support for Oracle OpenJDK and Oracle JDK
- Oracle JRE and JDK Cryptographic Roadmap
-
Keynote - The Future of Java Is Now
- Announcing the Inside Java Podcast
- The Arrival of Java 15
- Episode 1 “Welcome to Inside Java!”
-
Oracle JDK and Oracle Open JDK
- A new (Japanese) era for Java!
- Oracle's Plan for Distrusting Symantec TLS Certificates in the JDK
- Oracle Java SE Releases FAQ
- Oracle JDK Releases for Java 11 and Later
- Update and FAQ on the Java SE Release Cadence
Performance
- Making Arena.ofConfined() Even Cheaper in JDK 28
-
Agent Helidon: License to Scale
- Faster Post-Quantum Cryptography with JDK Intrinsics
- Performance Improvements in JDK 27
- The Limitations of Running a Workload Generator In the Same JVM as the System-Under-Test
-
Just-In-Time Compilation for Java Performance: Recent and Ongoing Improvements
- Episode 70 “AOT Caching - Netflix' Practice vs OpenJDK's Theory” [I/O]
- JDK 27 Runtime Updates Release Notes
-
Principles of Memory Management in Java
- Acceleration of Curve25519 Field Operations with Java Software and Intrinsics
- Episode 64 “JIT Compiler From the Ground Up” [AtA]
- Can Java Microservices Be As Fast As Go? A 2026 Benchmark Update
- Performance Improvements in JDK 26
- Episode 59 “Java *is* Memory Efficient” [AtA]
-
Java AOT in Production at Netflix
- Secure, Scalable JVM Diagnostics for Kubernetes with JMS
-
Java Performance Update: From JDK 21 to JDK 25
- Java 26 for DevOps
-
1B Rows with the Memory API - JEP Cafe #25
- One Giant Leap: 95% Less Sampling Cost
-
The Static Dynamic JVM – A Many Layered Dive #JVMLS
- Run Into the New Year with Java’s Ahead-of-Time Cache Optimizations
-
Supercharge your JVM Performance with Project Leyden and Spring Boot
-
Assembling Project Leyden #JVMLS
- Performance Improvements in JDK 25
-
From JDK 21 to JDK 25 - Java Performance Update 2025
-
Java 21 ⮕ 25: Performance and Runtime Enhancements #RoadTo25
-
Auto-Vectorization in HotSpot #JVMLS
- Just Be Lazy
-
ZGC - Paving the GC On-Ramp
-
Project Leyden's AOT - Shifting Java Startup into High Gear
- FFM vs. Unsafe. Safety (Sometimes) Has a Cost
-
Java 24, Faster Than Ever
- Strings Just Got Faster
- New Write Barriers for G1
-
Java 24 Release Notes Overview for Operations
- Performance Improvements in JDK 24
- A Deep Dive into JVM Start-up
-
Java Performance Update
-
A Deep Dive into JVM Start Up - Stack Walker #6
-
Java 24 Performance Improvements and Deprecations - Inside Java Newscast #82
-
Java 24 Stops Pinning Virtual Threads (Almost) - Inside Java Newscast #80
- JEP targeted to JDK 24: 450: Compact Object Headers (Experimental)
-
A Sneak Peek at StableValue and SegmentMapper
- Advancing AI by Accelerating Java on Parallel Architectures
-
Java Performance Update with Per-Ake Minborg - Live Q&A at Devoxx BE
-
Best of Java Performance - Inside Java Newscast #75
-
Rethinking Java String Concatenation #JVMLS
-
How to Build Custom Java Runtimes with Jlink
-
Introduction to JDK Mission Control
- What's New in JMC 9? - Sip of Java
- Pruning Dead Exception Handlers
- JDK 22 G1/Parallel/Serial GC changes
- JDK 21: The GCs keep getting better
- Hazelcast Jet on Generational ZGC
-
Reducing P99 Latencies with Generational ZGC
-
Where the JVM is Entering the Era of AI Performance Tuning!
- Generational ZGC - Sip of Java
-
With Java 21, Your Code Runs Even Faster but How is that Possible?
- JFR View Command - Sip of Java
- Java Records are "Trusted" and Consequently Faster
-
Java 21 JVM and GC Improvements #RoadTo21
-
Java's Startup Booster: CDS - Stack Walker #3
- Create a multi-platform container image with Java SE Subscription Enterprise Performance Pack
-
A Glance At The Java Performance Toolbox
-
Save 10-20% Memory With Compact Headers - Inside Java Newscast #48
-
Write performant Java code with the Vector API - JEP Café 18
-
The Holy Grail of Java Performance - Inside Java Newscast #43
- JDK 21 - Image Performance Improvements
- JDK 21 - Performance Improvements Revealed
-
GraalVM in OpenJDK and More JavaOne Announcements - Inside Java Newscast #36
- Pre-Allocated Methods for HashMap and HashSet - Sip of Java
- AppCDS Autogenerate - Sip of Java
- The Serial Garbage Collector - Sip of Java
- The Parallel Garbage Collector - Sip of Java
- Runtimes Updates Post-JDK 11 - Sip of Java
- Client Applications Configuration with Oracle JDK 11+
-
String Concatenation - JEP Café #7
- GC progress from JDK 8 to JDK 17
- Improving Java Performance on OCI Ampere A1 Compute instances
- Faster Charset Encoding
-
G1: To Infinity and Beyond
- Large pages and Java
- Multi-Tier Compilation in GraalVM
- Faster Charset Decoding
- Reducing MD5 (and SHA) overheads
- Extending the Automatic Vectorization Capabilities of the C2 Compiler
- Investigating MD5 overheads
- Towards OpenJDK 17
- Zip lookups - a word from the sponsor
- Improving G1 out-of-the-box performance
-
Heap Archiving
-
G1: To infinity and beyond
- OpenJDK Startup - Late 2019 Edition
-
GraalVM-Native Images: The Best Startup Solution for Your Applications
-
Maximizing Performance with GraalVM
- Updates on Class Initialization in GraalVM Native Image Generation
- Improving performance of GraalVM native images with profile-guided optimizations
- libgraal: GraalVM compiler as a precompiled GraalVM native image
- String concatenation, redux
- cljinit woes
Project Amber
The goal of Project Amber is to explore and incubate smaller, productivity-oriented Java language features.
-
How Does Java Fit Into the World of AI—and How Can It Become an Even Better Fit?
- Preparing for Change: Safe Switching over Sealed APIs
-
Better Tools for Immutable Data
-
JavaNext Language Features
- JEP targeted to JDK 27: 532: Primitive Types in Patterns, instanceof, and switch (5th Preview)
- Episode 57 “Make Java Safer with Flexible Constructor Bodies” [IJN]
-
Make Java Safer with Flexible Constructor Bodies - Inside Java Newscast #111
- Episode 52 “Carrier Classes & Discussing Syntax” [AtA]
- Data Oriented Programming, Beyond Records
- Episode 47 “Carrier Classes” [IJN]
- Episode 46 “Java's Plans for 2026” [IJN]
-
Towards Better Checked Exceptions - Inside Java Newscast #107
- Data-Oriented Programming for Java: Beyond Records
-
Carrier Classes; Beyond Records - Inside Java Newscast #105
-
Java's Plans for 2026 - Inside Java Newscast #104
-
Java's 2025 in Review - Inside Java Newscast #103
- JEP targeted to JDK 26: 530: Primitive Types in Patterns, instanceof, and switch (4th Preview)
-
Pattern Matching, Under the Microscope
- Episode 40 “Amber & Valhalla - Incremental Design and Feature Arcs” [AtA]
-
All New Java Language Features Since Java 21 #RoadTo25
-
A New Model for Java Object Initialization
- JEP targeted to JDK 25: 507: Primitive Types in Patterns, instanceof, and switch (3rd Preview)
-
Key Java Language Updates From 2020 to 2025
-
Pattern Matching in Java: Better Code, Better APIs
- JEP targeted to JDK 25: 513: Flexible Constructor Bodies
- JEP targeted to JDK 25: 512: Compact Source Files and Instance Main Methods
- JEP targeted to JDK 25: 511: Module Import Declarations
-
Finalizing the Java On-ramp - Inside Java Newscast #90
-
Where Is the Java Language Going?
-
Java Language Evolution in 2025 - Inside Java Newscast #84
- JEP targeted to JDK 24: 494: Module Import Declarations (2nd Preview)
- JEP targeted to JDK 24: 495: Simple Source Files and Instance Main Methods (4th Preview)
-
Pattern Matching in Java - Past, Present, Future
- JEP targeted to JDK 24: 488: Primitive Types in Patterns, instanceof, and switch (Second Preview)
-
Java Language Futures - Fall 2024 Edition
- Build a Cloud Compute Instance with Java Concepts
-
Java Language Futures - Spring 2024 Edition
- Why Update Data-Oriented Programming to Version 1.1?
-
What Happened to String Templates? Inside Java Newscast #71
- When to use Data-Oriented Programming v1.1
- Separate Operations From Data - Data-Oriented Programming v1.1
- Make Illegal States Unrepresentable - Data-Oriented Programming v1.1
- JEP targeted to JDK 23: 482: Flexible Constructor Bodies (Second Preview)
- Model Data, the Whole Data, and Nothing but the Data - Data-Oriented Programming v1.1
- JEP targeted to JDK 23: 477: Implicitly Declared Classes and Instance Main Methods (Third Preview)
- Model Data Immutably and Transparently - Data-Oriented Programming v1.1
- Data-Oriented Programming in Java - Version 1.1
-
Module Imports in Java 23 - Inside Java Newscast #69
- JEP targeted to JDK 23: 476: Module Import Declarations (Preview)
-
Java 21 and Beyond: A Roadmap of Innovations
-
Java Withers - Inside Java Newscast #67
-
Java 23: Restoring the Balance with Primitive Patterns - Inside Java Newscast #66
- JDK 22 in Two Minutes! - Sip of Java
-
Java Language Update - Early 2024 Edition
-
Data-Oriented Programming in Java 21
-
Java 22 Previews Statements Before super(...) and this(...) - Inside Java Newscast #62
- JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview)
-
Java's Plans for 2024 - Inside Java Newscast #61
- Stepping in 2024 with Powerful Java Language Features
- Uniform handling of failure in switch
-
Java 22 Unpacking - Inside Java Newscast #59
- JEP targeted to JDK 22: 463: Implicitly Declared Classes and Instance Main Methods (Second Preview)
- JEP targeted to JDK 22: 447: Statements before super(...) (Preview)
- JEP targeted to JDK 22: 456: Unnamed Variables & Patterns
- JEP targeted to JDK 22: 459: String Templates (Second Preview)
- Pattern Matching for switch - Sip of Java
- Record Patterns in Java 21 - Sip of Java
- Solving the Countdown problem with Java 21's Language Features
-
Brian Goetz Answers Your Java Questions
-
Java 21 is an explosive release! 💣💥
- New candidate JEP: 456: Unnamed Variables and Patterns
- New candidate JEP: 455: Primitive types in Patterns, instanceof, and switch (Preview)
-
Java 21 Brings Full Pattern Matching #RoadTo21
- Java Records are "Trusted" and Consequently Faster
-
All That is in Java 21?! - Inside Java Newscast #50
- Patterns: Exhaustiveness, Unconditionality, and Remainder
-
Script Java Easily in 21 and Beyond - Inside Java Newscast #49
- JEP proposed to target JDK 21: 443: Unnamed Patterns and Variables (Preview)
- JEP proposed to target JDK 21: 445: Unnamed Classes and Instance Main Methods (Preview)
- JEP proposed to target JDK 21: 440: Record Patterns
- JEP proposed to target JDK 21: 441: Pattern Matching for switch
-
The SolutionFactory To Java's Problems - Keynote
-
Interpolating Strings Like a King in Java 21 - Inside Java Newscast #47
- JDK 20 Release! - Sip of Java
-
Getting Rid Of Unused Variables (Finally) - Inside Java Newscast #46
-
Java Language Futures, Spring 2023 Edition
-
Java Next - From Amber to Loom, from Panama
-
Data-Oriented Programming in Java
- Deconstruction Patterns
- JEP proposed to target JDK 21: 430: String Templates (Preview)
-
Java's Plans for 2023 - Inside Java Newscast #40
- Episode 28 “Java Language - State of the Union” [AtA]
- Tutorial - Using Pattern Matching
-
Java 17 to 20 Pattern Matching full tutorial with Records, Instanceof and Switch - JEP Café #14
-
Inside Java | JavaOne 2022 Technical Keynote
- New candidate JEP: 432: Record Patterns (2nd Preview)
- New candidate JEP: 433: Pattern Matching for switch (4th Preview)
-
Clean Code with Records, Sealed Classes and Pattern Matching
-
Starting (With) Java, Made Simple - Inside Java Newscast #35
- Paving the on-ramp
-
Java To The Future
-
Java 19 in Action - Inside Java Newscast #33
-
String Templates, JavaFX 19, Deserialization, and more at JavaOne - Inside Java Newscast #32
-
Sequenced Collections, Purity, and more at JavaOne - Inside Java Newscast #31
-
Java Q&A - Inside Java Newscast #30
-
How Amber is Driving Java’s Evolution
-
Clean Application Development with Records, Sealed Classes and Pattern Matching
- How many subclasses can be declared for a sealed class?
-
Data-Oriented Programming - Inside Java Newscast #29
- Local Variable Type Inference FAQ
- Data-Oriented Programming in Java
-
Java 19 - The Best Java Release? - Inside Java Newscast #27
-
Deconstructing Records in Pattern Matching - Inside Java Newscast #26
-
News Grab Bag: Loom Virtual Threads, Lilliput, Pattern Matching, … - Inside Java Newscast #25
- JEP proposed to target JDK 19: Record Patterns (Preview)
-
Java Next - From Amber to Loom, from Panama to Valhalla
-
WHEN and NULL In Pattern Matching - Inside Java Newscast #24
- New candidate JEP: 427: Pattern Matching for switch (Third Preview)
-
Java Language Futures: Spring 2022 Edition
-
The Elegance of Pattern Matching in Modern Java
-
Leverage Java 17 New Features to Create Your Wordle Checker - JEP Café #10
-
Refactoring Java 8 code with Java 17 new features - JEP Café #9
-
Java's Plans for 2022 - Inside Java Newscast #18
-
Java 17 Deep Dive
-
Records Patterns, Performance and Serialization - JEP Café #8
-
Records, Sealed Classes and Pattern Matching
- JEP proposed to target JDK 18: 420: Pattern Matching for switch (Second Preview)
-
Text Blocks - JEP Café #5
-
Making Use of Sealed Classes in Java
- Episode 20 “Java 17 is Here! Part 2” [AtA]
-
Pattern Matching in Java 17 and Beyond
-
Java Language Futures: Late 2021 Edition
-
Switch Expressions - JEP Café #3
- What are they building—and why? 6 questions for the top Java architects
-
AMA About the Java Language
- Minor improvement to anonymous classes
-
Sealed Classes - JEP Café #2
- Episode 17 “Pattern Matching for switch” [AtA]
-
Inside Java Newscast #5
- JEP proposed to target JDK 17: 406: Pattern Matching for switch (Preview)
- Rehabilitating switch -- a scorecard
-
Inside Java Newscast #4
- Why Java's Records Are Better* Than Lombok's @Data and Kotlin's Data Classes
- Switch labels (null again), some tweaking
-
Inside Java Newscast #3
-
How Java Records Can Improve Serialization
-
Inside Java Newscast #2
-
Java Language Futures: Spring 2021
- New candidate JEP: 409: Sealed Classes
- Record Serialization in Practice
- New candidate JEP: 405: Record Patterns & Array Patterns (Preview)
- New candidate JEP: 406: Pattern Matching for switch (Preview)
- Looking ahead: pattern assignment
- Simpler Serialization with Records
- Episode 14 “Records Serialization” [AtA]
- Guards
- Primitive type patterns and conversions
-
OracleDevLive Preview | Gavin Bierman on Java Language Futures
-
When Records Met Serialization: A Happy Tale
- Java Feature Spotlight: Pattern Matching
- Pattern features for next iteration
- [pattern-switch] Guards
- Pattern Matching in the Java Object Model
- Array patterns (and varargs patterns)
- Specs update
- JEP proposed to target JDK 16: 397: Sealed Classes (Second Preview)
- The Record Attribute - What does it mean to be a record at runtime?
- New candidate JEP: 397: Sealed Classes (Second Preview)
- JEP proposed to target JDK 16: 394: Pattern Matching for instanceof
- JEP proposed to target JDK 16: 395: Records
- New candidate JEP: 395: Records
- Relaxed assignment conversions for sealed types
- New candidate JEP: 394: Pattern Matching for instanceof
- Episode 4 “Record Classes” [AtA]
-
Java Language Futures - Mid 2020 Edition
- 'Type patterns in switch' document updated
- Finalizing in JDK 16 - Pattern matching for instanceof
- A peek at the roadmap for pattern matching and more
- Programmer's Guide To Text Blocks
- Finalizing in JDK 16 - Pattern matching for instanceof
- Finalizing in JDK 16 - Records
- Record Serialization
- Next up for patterns: type patterns in switch
- Java Feature Spotlight: Sealed Classes
- JEP 360: Sealed Classes (Preview) - targeted to JDK 15
- Class & Interface Terminology
- Java Feature Spotlight: Text Blocks
- Lombok getter/setter vs. Records
- Amber is moving to Git, GitHub and Skara
-
Java Languages Features for Improved Productivity
-
Evolving Java: Project Amber
- Java Feature Spotlight: Records
- Towards cleaner nesting
-
Java Language Futures - Late 2019 Edition
- Java Feature Spotlight: Local Variable Type Inference
-
Java Language Futures - 2019 Edition
- Local Variable Type Inference FAQ
- Towards Better Serialization
- Data Classes and Sealed Types for Java
- InfoQ Podcast with Brian Goetz
- JEP proposed to drop from JDK 12: 326: Raw String Literals (Preview)
- Pattern Matching for Java
- Local Variable Type Inference: Style Guidelines
-
Small Language Changes in JDK 9
-
Adventures in Pattern Matching
-
Constants in Amber
- enhanced enums - end of the road?
- Extending switch for Pattern Matching
-
Java Past, Present, and Future
Project Babylon
Project Babylon’s primary goal is to extend the reach of Java to foreign programming models such as SQL, differentiable programming, machine learning models, and GPUs. Babylon will achieve this with an enhancement to reflective programming in Java, called code reflection.
-
Reflect, Transform, Accelerate: Bringing GPU Computing to Java
-
How Does Java Fit Into the World of AI—and How Can It Become an Even Better Fit?
-
Under the HAT: Empowering GPU Acceleration for Java
- Episode 62 “JDK 27 + Valhalla, Now! + Hackathon” [IJN]
- Exploiting GPU Tensor Cores from Java using Babylon
-
Reflecting on HAT: A Project Babylon Case Study
- Episode 46 “Java's Plans for 2026” [IJN]
- Optimizing GPU Programs from Java using Babylon and HAT
-
Java's Plans for 2026 - Inside Java Newscast #104
-
Java's 2025 in Review - Inside Java Newscast #103
- Episode 42 “From Sumatra to Panama, from Babylon to Valhalla” [AtA]
-
ONNX Based Generative AI LLMs in Java with Project Babylon
-
Symbolic Modeling and Transformation of Java Code #JVMLS
-
Writing GPU-Ready AI Models in Pure Java with Babylon
-
Java for AI
-
Java GPGPU Enablement: Are We There Yet?
-
Java for AI
-
Java's Plans for 2025 - Inside Java Newscast #83
- Advancing AI by Accelerating Java on Parallel Architectures
-
Heterogeneous Accelerator Toolkit (HAT) Update #JVMLS
-
Best of Java Performance - Inside Java Newscast #75
-
A Code Reflection Example - Translating Java to SPIR-V #JVMLS
-
Project Babylon - Code Reflection #JVMLS
-
Java and AI? - Inside Java Newscast #72
- Code Models
- Exploring Triton GPU programming for neural networks in Java
- Emulating C# LINQ in Java using Code Reflection
- Automatic differentiation of Java code using Code Reflection
-
Java's Plans for 2024 - Inside Java Newscast #61
-
Java On The GPU - Inside Java Newscast #58
- Call for Discussion: New Project: Babylon
-
JVMLS - Code Reflection
-
JVMLS - Java and GPU … are we nearly there yet?
Project Leyden
The primary goal of Project Leyden is to improve the startup time, time to peak performance, and footprint of Java programs.
-
Java - The Year of the Runtime!
- Episode 70 “AOT Caching - Netflix' Practice vs OpenJDK's Theory” [I/O]
- Episode 62 “JDK 27 + Valhalla, Now! + Hackathon” [IJN]
- Can Java Microservices Be As Fast As Go? A 2026 Benchmark Update
-
Java AOT in Production at Netflix
- Episode 46 “Java's Plans for 2026” [IJN]
- Run Into the New Year with Java’s Ahead-of-Time Cache Optimizations
-
Java's Plans for 2026 - Inside Java Newscast #104
-
Java's 2025 in Review - Inside Java Newscast #103
- JEP targeted to JDK 26: 516: Ahead-of-Time Object Caching with Any GC
-
Supercharge your JVM Performance with Project Leyden and Spring Boot
-
Assembling Project Leyden #JVMLS
-
Reviewing the JDK 25 Release Notes - Inside Java Newscast #98
-
Ahead-of-Time Computation #RoadTo25
- JEP targeted to JDK 25: 515: Ahead-of-Time Method Profiling
-
Project Leyden's AOT - Shifting Java Startup into High Gear
- JEP targeted to JDK 25: 514: Ahead-of-Time Command-Line Ergonomics
- Ubuntu Ships Java, Spring, AOT
- Episode 36 “Ahead of Time Computation” [AtA]
- A Deep Dive into JVM Start-up
-
Java's Plans for 2025 - Inside Java Newscast #83
-
A Deep Dive into JVM Start Up - Stack Walker #6
-
A Preview of What's Coming in Project Leyden - Inside Java Newscast #78
-
Best of Java Performance - Inside Java Newscast #75
-
Project Leyden #JVMLS
- Quality Outreach Heads-up - New Leyden Early-Access Builds
-
Project Leyden: Capturing Lightning in a Bottle
-
Java's Plans for 2024 - Inside Java Newscast #61
-
Project Leyden
-
JVMLS 2023 Keynote
-
JVMLS - Project Leyden
- Using Computed Constants to Manage Static State in Leyden
- Draft JEP: Computed Constants
- Project Leyden: Toward Condensers
-
The Holy Grail of Java Performance - Inside Java Newscast #43
-
Java's Plans for 2023 - Inside Java Newscast #40
- Selectively Shifting and Constraining Computation
-
Java Q&A - Inside Java Newscast #30
- Project Leyden: Beginnings
- Towards OpenJDK 17
- Call for Discussion - New Project: Leyden
Project Loom
Project Loom is intended to explore, incubate, and deliver Java VM features and APIs built on top of them for the purpose of supporting easy-to-use, high-throughput lightweight concurrency and new programming models on the Java platform.
- JEP targeted to JDK 28: 543: Structured Concurrency
-
Structured Concurrency Looms
- JEP targeted to JDK 27: 533: Structured Concurrency (7th Preview)
- Episode 46 “Java's Plans for 2026” [IJN]
-
Java's Plans for 2026 - Inside Java Newscast #104
-
Virtual Threads in the Real World: Fast, Robust Java Microservices with Helidon
-
Java's 2025 in Review - Inside Java Newscast #103
-
Valhalla? Python? Withers? Lombok? - Ask the Architects at JavaOne'25
- JEP targeted to JDK 26: 525: Structured Concurrency (6th Preview)
-
Structured Concurrency in Action
-
Reviewing the JDK 25 Release Notes - Inside Java Newscast #98
-
All API Additions From Java 21 to 25 #RoadTo25
- JEP targeted to JDK 25: 506: Scoped Values
- JEP targeted to JDK 25: 505: Structured Concurrency (5th Preview)
-
Structured Concurrency Revamp in Java 25 - Inside Java Newscast #91
-
Scoped Values in Java 24 - Inside Java Newscast #86
-
Project Loom and Virtual Threads: Next Phases
-
Java's Plans for 2025 - Inside Java Newscast #83
-
Java 24 Stops Pinning Virtual Threads (Almost) - Inside Java Newscast #80
- JEP targeted to JDK 24: 491: Synchronize Virtual Threads without Pinning
- JEP targeted to JDK 24: 487: Scoped Values (4th Preview)
-
Are Virtual Threads Going to Make Reactive Programming Irrelevant?
-
Loom's Next Phases with Alan Bateman - Live Q&A at Devoxx BE
-
Loom - Where Are We? #JVMLS
- New Loom Early-Access Builds with Changes for JDK 24
-
Project Loom - Structured Concurrency
- Quality Outreach Heads-up - New Loom Early-Access Builds
- JEP targeted to JDK 23: 481: Scoped Values (3rd Preview)
- JEP targeted to JDK 23: 480: Structured Concurrency (Third Preview)
-
Java in 2024 - Constant evolution, delivered.
- JDK 22 in Two Minutes! - Sip of Java
- Quality Outreach Heads-up - Virtual Threads “Pinning” Issue
-
Virtual Threads - Next Steps
- Managing Throughput with Virtual Threads - Sip of Java
-
Java's Plans for 2024 - Inside Java Newscast #61
- JEP targeted to JDK 22: 462: Structured Concurrency (Second Preview)
-
Java 22 Unpacking - Inside Java Newscast #59
- JEP targeted to JDK 22: 464: Scoped Values (Second Preview)
- Virtual Threads Explained - Sip of Java
-
Java Architects Answer Your Questions
- Virtual Threads: An Adoption Guide
- JDK 21 Release - Sip of Java
-
Java 21 new feature: Virtual Threads #RoadTo21
-
JVMLS - Continuations Under the Covers
-
JVMLS - The Challenges of Introducing Virtual Threads to the Java Platform
-
All That is in Java 21?! - Inside Java Newscast #50
-
Java Virtual Threads
- JDK 20 Release! - Sip of Java
-
Helidon - Microservices on Modern Java
- JEP proposed to target JDK 21: 444: Virtual Threads
-
Java Next - From Amber to Loom, from Panama
-
Java's Plans for 2023 - Inside Java Newscast #40
- Episode 29 “Helidon Níma & Virtual Threads” [AtA]
-
From ThreadLocal to ScopedValue with Loom - JEP Café #16
- New candidate JEP: 436: Virtual Threads (2nd Preview)
- New candidate JEP: 437: Structured Concurrency (2nd Incubator)
-
Inside Java | JavaOne 2022 Technical Keynote
-
The Age of Virtual Threads
-
Loom in the Java Ecosystem - Inside Java Newscast #34
- Virtual Threads: New Foundations for High-Scale Java Applications
-
JavaOne Preview | Streamlining Large-Scale Java Development
-
Java To The Future
- Helidon Níma — Helidon on Virtual Threads
-
Java 19 in Action - Inside Java Newscast #33
- airhacks.fm: Java 19 Millions of Threads in No Time
- New candidate JEP: 429: Extent-Local Variables (Incubator)
-
Java Asynchronous Programming Full Tutorial with Loom and Structured Concurrency - JEP Café #13
-
Launching 10 millions virtual threads with Loom - JEP Café #12
-
Java 19 - The Best Java Release? - Inside Java Newscast #27
-
Java 19 Virtual Threads - JEP Café #11
- JEP proposed to target JDK 19: 428: Structured Concurrency (Incubator)
-
News Grab Bag: Loom Virtual Threads, Lilliput, Pattern Matching, … - Inside Java Newscast #25
- New candidate JEP: 428: Structured Concurrency (Incubator)
- Quality Outreach Heads-up - JEP 425 Virtual Threads (preview) Testing
-
Java Next - From Amber to Loom, from Panama to Valhalla
- New Loom Early Access builds
- JEP proposed to target JDK 19: 425: Virtual Threads (Preview)
-
Virtual Thread Deep Dive - Inside Java Newscast #23
- New candidate JEP: 425: Virtual Threads (Preview)
-
Java's Plans for 2022 - Inside Java Newscast #18
- New Loom Early Access builds
-
Loom Brings Structured Concurrency - Inside Java Newscast
- On Parallelism and Concurrency
- A new Loom EA build and a new structured concurrency API
-
Why user-mode threads are (often) the right answer
-
Modern, Scalable Concurrency for the Java Platform
- New candidate JEP: 418: Internet-Address Resolution SPI
- New Loom Early Access Build
- What are they building—and why? 6 questions for the top Java architects
-
AMA About the Java Language
-
Project Loom: Modern Scalable Concurrency for the Java Platform
- Virtual Threads and Structured Concurrency with Ron Pressler
- Networking I/O with Virtual Threads - Under the hood
- Episode 16 “Let's Discuss JDK and Networking” [AtA]
- New Loom Early Access Build
-
Project Loom: Modern scalable concurrency for the Java platform
- New Loom Early Access Build
- New Loom Early Access Build
- Episode 8 “Project Loom” [AtA]
-
Project Loom: Scalable, Harmonious Concurrency for the Java Platform
-
Project Loom - Modern Scalable Concurrency for the Java Platform
- On the Performance of User-Mode Threads and Coroutines
-
Project Loom: Modern Scalable Concurrency for the Java Platform
- New Project Loom Early-Access Builds
- Loom Q&A
- New Project Loom Early-Access Builds
- Virtual Threads use Preemptive Scheduling
- State of Loom
- A New Project Loom Early Access Build
- The pattern in the Loom (a blanket statement)
- Virtual Threads - A Short Note about Naming
-
Loom: Helping Write Concurrent Applications on the Java Platform
- A lightweight thread is a Thread
- Project Loom Is Moving to GitHub
- Early Access Loom Builds
-
Project Loom Update
- InfoQ Podcast with Brian Goetz
-
Project Loom: Fibers and Continuations for Java
-
Your next JVM: Panama, Valhalla, Metropolis
Project Panama
Project Panama is improving and enriching the connections between the Java virtual machine and well-defined but “foreign” (non-Java) APIs, including many interfaces commonly used by C programmers.
-
How Does Java Fit Into the World of AI—and How Can It Become an Even Better Fit?
- Making Arena.ofConfined() Even Cheaper in JDK 28
-
Under the HAT: Empowering GPU Acceleration for Java
-
SIMD Vectors in the HotSpot JVM - Auto Vectorization and the Vector API
- JEP targeted to JDK 27: 537: Vector API (12th Incubator)
-
Native Interoperability with JDK 25 and the FFM API
- Episode 46 “Java's Plans for 2026” [IJN]
-
1B Rows with the Memory API - JEP Cafe #25
-
Java's Plans for 2026 - Inside Java Newscast #104
-
Java's 2025 in Review - Inside Java Newscast #103
- Episode 42 “From Sumatra to Panama, from Babylon to Valhalla” [AtA]
- JEP targeted to JDK 26: 529: Vector API (11th Incubator)
-
Beyond the Vector API - A Quest for a Lower Level API #JVMLS
- Pulling the (Foreign) String
-
Writing GPU-Ready AI Models in Pure Java with Babylon
-
Java for AI
-
All API Additions From Java 21 to 25 #RoadTo25
-
Interconnecting Java and Native Code with the FFM API
- JEP targeted to JDK 25: 508: Vector API (10th Incubator)
- FFM vs. Unsafe. Safety (Sometimes) Has a Cost
-
Java for AI
-
Java's Plans for 2025 - Inside Java Newscast #83
- Peaceful and Bright Future of Integrity by Default in Java
- Tutorial: The Foreign Function and Memory API
- Quality Outreach Heads-up - JDK 24: Prepares Restricted Native Access
- JEP 489: Vector API (9th Incubator)
-
Jextract - Java Treasures from Native Code Gems
- Tutorial: Jextract - The Native Library Binding Extraction Tool
- Advancing AI by Accelerating Java on Parallel Architectures
-
Java and AI? - Inside Java Newscast #72
- JEP targeted to JDK 23: 471: Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal
- JEP 469: Vector API (Eighth Incubator)
- Jextract Guide
- JDK 22 in Two Minutes! - Sip of Java
- State of jextract
-
Foreign Function & Memory API - A (quick) peek under the hood
- Quality Outreach Heads-up - Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal in a Future Release
-
Java's Plans for 2024 - Inside Java Newscast #61
- Episode 32 “The Panama Effect” [AtA]
-
Java 22 Unpacking - Inside Java Newscast #59
- JEP targeted to JDK 22: 460: Vector API (7th Incubator)
- Open sourcing Jipher for FIPS regulated environments
- FFM API Goes Final!
- New candidate JEP: 454: Foreign Function & Memory API
- FFM API Provides Massive Performance Improvements for Native Strings
-
JVMLS - Foreign Function & Memory API
- Foreign Function & Memory API Summer Update
-
All That is in Java 21?! - Inside Java Newscast #50
- JEP proposed to target JDK 21: 448: Vector API (6th Incubator)
- JDK 20 Release! - Sip of Java
-
Project Panama: Interconnecting the Java Virtual Machine and Native Code
- JEP proposed to target JDK 21: 442: Foreign Function & Memory API (3rd Preview)
-
Java Next - From Amber to Loom, from Panama
-
Write performant Java code with the Vector API - JEP Café 18
- JEP proposed to target JDK 20: 438: Vector API (5th Incubator)
-
Foreign Function & Memory API Live
- Lifetimes in the Foreign Function & Memory API
-
Java's Plans for 2023 - Inside Java Newscast #40
- Java 20 - An Almost Infinite Memory Segment Allocator
- Another Panama Update
- Java 20 - Colossal Sparse Memory Segments
- Java 20 - Sneak Peek on the Foreign Function & Memory API
- Dissecting Memory Sessions
- New candidate JEP: 434: Foreign Function & Memory API (2nd Preview)
- Unifying Memory Addresses and Memory Segments
- Introduction to Project Panama - Part 2: Variadic Functions
-
Java 19 - The Best Java Release? - Inside Java Newscast #27
- Introduction to Project Panama - Part 1: "Hello World"
-
Java Next - From Amber to Loom, from Panama to Valhalla
- New candidate JEP: 426: Vector API (Fourth Incubator)
-
Project Panama: Say Goodbye to JNI
- `jextract` Standalone Repository
- New candidate JEP: 424: Foreign Function & Memory API (Preview)
-
Java's Plans for 2022 - Inside Java Newscast #18
- Panama/Foreign Status Update
- Java Value Layout Constants
- JEP proposed to target JDK 18: 419: Foreign Function & Memory API (Second Incubator)
- Resource Scope Dependencies
-
The Vector API in JDK 17
- Finalizing the Foreign APIs
- JEP proposed to target JDK 18: 417: Vector API (Third Incubator)
- Calling a Rust library with the Panama FFI
- New candidate JEP: 417: Vector API (Third Incubator)
- What are they building—and why? 6 questions for the top Java architects
- Add support for secondary carriers to Memory Access API
- Taming Resource Scopes
- New Panama/Foreign Early-Access Builds
- JEP proposed to target JDK 17: 412: Foreign Function & Memory API (Incubator)
- JEP proposed to target JDK 17: 414: Vector API (Second Incubator)
- New candidate JEP: 414: Vector API (Second Incubator)
- Library Loading
- New candidate JEP: 412: Foreign Function & Memory API (Incubator)
- Foreign Memory Access and NIO channels - Going Further
-
Inside Java Newscast #2
-
The Vector API: SIMD Programming in Java
- New Panama/Foreign Early-Access Builds, February update
- Foreign Memory Access - Pulling all the threads
- Episode 10 “Project Panama - The Foreign Linker API” [AtA]
- New Panama/Foreign EA builds, December 2020 edition
- Episode 9 “Project Panama - The Foreign Memory Access API” [AtA]
- Episode 7 “The Vector API” [AtA]
- JEP proposed to target JDK 16: 389: Foreign Linker API (Incubator)
- JEP proposed to target JDK 16: 393: Foreign-Memory Access API (Third Incubator)
- Project Panama and jextract
- New Panama/Foreign Early Access Build
- New candidate JEP: 393: Foreign-Memory Access API (3rd Incubator)
- JEP proposed to target JDK 16: 338: Vector API (Incubator)
- New candidate JEP: 389: Foreign Linker API (Incubator)
- State of Foreign Function support
- State of Foreign Memory support
- Rethinking the role of MemorySegment vs. MemoryAddress
- Simplifying memory access var handles
- Segments and confinement
- Simple jstruct plugin
- Intrinsify down calls
-
ByteBuffers are dead, long live ByteBuffers!
- State of Panama Scopes
- Project Panama is moving to GitHub
- jextract, distilled
-
Beyond ByteBuffers
-
Vector API
-
Panama Update
-
Vectors and the Numerics on the JVM
- Concurrent memory access
- State of varargs
- Memory access: the missing link
- State of Panama Pointers
- State of Panama Scopes
- State of Panama foreign annotations
-
Panama: A Foreign Policy for Java
-
Vector API for Java
- State of the Isthmus
-
Your next JVM: Panama, Valhalla, Metropolis
-
Safety First
- The Isthmus in the VM
Project Valhalla
Project Valhalla is augmenting the Java object model with value objects, combining the abstractions of object-oriented programming with the performance characteristics of simple primitives.
-
How Does Java Fit Into the World of AI—and How Can It Become an Even Better Fit?
-
Java - The Year of the Runtime!
- JEP targeted to JDK 28: 539: Strict Field Initialization in the JVM (Preview)
- JEP targeted to JDK 28: 401: Value Objects (Preview)
- Episode 68 “Operator Overloading with Type Classes” [AtA]
- Value Classes Still Need Compiler Sympathy
- Episode 66 “JSON API, Valhalla Progress, LTS ❤️ PQC” [IJN]
- Episode 62 “JDK 27 + Valhalla, Now! + Hackathon” [IJN]
- Identifying JDK Value Class Candidates
-
Better Tools for Immutable Data
-
JavaNext Language Features
- On Default Values for Primitive-Like Classes
-
How the JVM Optimizes Generic Code
- Episode 46 “Java's Plans for 2026” [IJN]
- Optimizing Java Class Metadata in Project Valhalla
-
Java's Plans for 2026 - Inside Java Newscast #104
-
Java's 2025 in Review - Inside Java Newscast #103
-
Valhalla? Python? Withers? Lombok? - Ask the Architects at JavaOne'25
- Episode 42 “From Sumatra to Panama, from Babylon to Valhalla” [AtA]
- Help, My Java Object Vanished (and the GC is Not at Fault)
-
Try the New Valhalla EA Build - Inside Java Newscast #100
-
Value Classes Heap Flattening - What to expect from JEP 401 #JVMLS
- Try Out JEP 401 Value Classes and Objects
-
Java for AI
- Episode 40 “Amber & Valhalla - Incremental Design and Feature Arcs” [AtA]
-
A New Model for Java Object Initialization
-
Java for AI
-
Where Is the Java Language Going?
- Refining var-handles in Valhalla
-
Java's Plans for 2025 - Inside Java Newscast #83
-
Valhalla - Java's Epic Refactor
-
Big News from Project Valhalla - Inside Java Newscast #77
-
Java Initialization 2.0 #JVMLS
-
Best of Java Performance - Inside Java Newscast #75
-
Type Specialization of Java Generics #JVMLS
-
Valhalla - Where Are We? #JVMLS
-
Java and AI? - Inside Java Newscast #72
- Encodings for Flattened Heap Values
-
Java's Plans for 2024 - Inside Java Newscast #61
-
Brian Goetz Answers Your Java Questions
-
JVMLS 2023 Keynote
-
JVMLS - Value Objects in Valhalla
- Introduction: Q-descriptors and v-bytecodes
- Design Document on Nullability and Value Types
-
Java Next - From Amber to Loom, from Panama
-
Java's Plans for 2023 - Inside Java Newscast #40
- Quality Outreach Heads-up - Valhalla: LW4 Early-Access Builds
-
Java Value Objects in Action with Valhalla - JEP Café #15
-
Java To The Future
-
Java Q&A - Inside Java Newscast #30
-
Java Next - From Amber to Loom, from Panama to Valhalla
-
Java's Plans for 2022 - Inside Java Newscast #18
- State of Valhalla
-
The Vector API in JDK 17
- What are they building—and why? 6 questions for the top Java architects
- State of Valhalla, Section 3: JVM Model
- New candidate JEP: 401: Primitive Objects (Preview)
- New candidate JEP: 402: Unify the Basic Primitives with Objects (Preview)
- Terminology update: Primitive Objects
- New candidate JEP: 390: Warnings for Value-Based Classes
- Early steps on the road to customization
- Background: how we got the generics we have
- State of Valhalla
- Valhalla - Finding the primitives
- State of Valhalla
-
Project Valhalla Update
- InfoQ Podcast with Brian Goetz
-
LWorld: the next steps on the journey to Valhalla
-
Programming with Minimal Values
-
Your next JVM: Panama, Valhalla, Metropolis
-
Adventures in Valhalla Reflection
- Reflection Manifesto
Security
- JEP targeted to JDK 28: 542: PEM Encodings of Cryptographic Objects
- Faster Post-Quantum Cryptography with JDK Intrinsics
- Episode 71 “Security in Java” [AtA]
- JDK 27 Security Enhancements
- Acceleration of Curve25519 Field Operations with Java Software and Intrinsics
- Announcing Oracle Jipher 10.37: FIPS 140-3 Cryptography for Java
- Quality Outreach Heads-up - JDK 28: Named Group Information Captured in the TLSHandshake JFR Event
- Episode 66 “JSON API, Valhalla Progress, LTS ❤️ PQC” [IJN]
- Post-Quantum Cryptography in Long-Term Support JDK Releases
- Transitioning Java to More Frequent Security Updates
- Quality Outreach Heads-up - JDK 28: jlink cacerts plugin
- JEP targeted to JDK 27: 538: PEM Encodings of Cryptographic Objects (3rd Preview)
- Episode 58 “Java Gets Post-Quantum TLS” [IJN]
- Quality Outreach Heads-up - JDK 27: Post-Quantum Hybrid Key Exchange for TLS 1.3
-
Java and Post-Quantum Cryptography
- JDK 26 Security Enhancements
- Secure, Scalable JVM Diagnostics for Kubernetes with JMS
- Post-Quantum Hybrid Key Exchange for TLS 1.3
- JEP targeted to JDK 27: 527: Post-Quantum Hybrid Key Exchange for TLS 1.3
- Quality Outreach Heads-up - JDK 26: HttpClient Supports TLS Named Groups & Signature Schemes
- JEP targeted to JDK 26: 524: PEM Encodings of Cryptographic Objects (Second Preview)
-
Reviewing the JDK 25 Release Notes - Inside Java Newscast #98
- JDK 25 Security Enhancements
-
How to Handle Security Changes in Java 25 #RoadTo25
- Episode 39 “Deprecations & Removals” [AtA]
-
Java Security Evolution - Out with the Old, In with the New
-
Java 25 Encodes PEM - Inside Java Newscast #93
- JEP targeted to JDK 25: 470: PEM Encodings of Cryptographic Objects (Preview)
- JEP targeted to JDK 25: 510: Key Derivation Function API
- Announcing Jipher: Java Cryptographic Service Provider for FIPS Environments
- JDK 24 Security Enhancements
-
Java 24 Release Notes Overview - Security Updates
-
Java Resists Quantum Attacks - Inside Java Newscast #85
- Detoxifying the JDK Source Code
- Quality Outreach Heads-up - JDK 24: Retiring the Security Manager
- Quality Outreach Heads-up - JDK 24: Security Properties Files Inclusion
- JEP targeted to JDK 24: 497: Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm
- JEP targeted to JDK 24: 496: Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism
-
Monitoring Java Application Security with JDK tools and JFR Events
- JEP targeted to JDK 24: 486: Permanently Disable the Security Manager
- JEP targeted to JDK 24: 478: Key Derivation Function API (Preview)
-
Serialization - A New Hope
- JDK 23 Security Enhancements
- Tutorial: Leveraging JDK Tools and Updates to Help Safeguard Java Applications
- Quality Outreach Heads-up - JDK 23: Re-Specified Subject.getSubject API
-
How to Build Custom Java Runtimes with Jlink
- JDK 22 Security Enhancements
-
Java 17 to 21: A Showcase of JDK Security Enhancements
-
Java's Custom Runtime Builder - jlink - Stack Walker #5
- Java SE Security Developer’s Guide
- Open sourcing Jipher for FIPS regulated environments
- JDK 21 Security Enhancements
-
Java 21 Security #RoadTo21
-
Strengthen your Java App's Defenses with Key Encapsulation Mechanism API - Inside Java Newscast #54
- KDF JEP for the Java Platform
- JEP proposed to target JDK 21: 452: Key Encapsulation Mechanism API
-
Evolving the Security of the Java Platform
- JDK 20 Security Enhancements
- Tutorial - Introduction to Java Encryption/Decryption
- Quality Outreach Heads-up - JDK 20: JMX Connections Use an ObjectInputFilter by Default
-
From Java Security with Love - Inside Java Newscast #42
-
Future Java - Prepare Your Codebase Now! - Inside Java Newscast #41
-
Secure Coding Guidelines for Java SE
- JDK 19 Security Enhancements
- Why Write an Empty finalize() Method?
- Quality Outreach Heads-up - Java Cryptographic Extension Survey
- Oracle JRE and JDK Cryptographic Roadmap Update
- Java Cryptographic Extension Survey
- JDK 18 Security Enhancements
- Episode 21 “JEP 421 and Finalization Deprecation” [AtA]
- Quality Outreach Heads-up - JDK 18: JEP 411
- Record Serialization - Sip of Java
- JDK 18 augmented `javac -Xlint:serial` checks
- Oracle JRE and JDK Cryptographic Roadmap update
- Serialization Filters - Sip of Java
- JDK 17 Security Enhancements
- A few updates to JEP 411: Deprecate the Security Manager for Removal
- Episode 18 “Java's steady march towards strong encapsulation” [AtA]
- Oracle JRE and JDK Cryptographic Roadmap
- JEP proposed to target JDK 17: 415: Context-Specific Deserialization Filters
- Updates to JEP 411: Deprecate the Security Manager for Removal
-
Inside Java Newscast #5
- JEP proposed to target JDK 17: 411: Deprecate the Security Manager for Removal
- Updates to JEP 411: Deprecate the Security Manager for Removal
- New candidate JEP: 415: Context-Specific Deserialization Filters
- Security and Sandboxing Post SecurityManager
- New candidate JEP: 411: Deprecate the Security Manager for Removal
-
How Java Records Can Improve Serialization
- Record Serialization in Practice
- JDK 16 Security Enhancements
- JEP proposed to target JDK 17: 398: Deprecate the Applet API for Removal
- Simpler Serialization with Records
- Episode 14 “Records Serialization” [AtA]
- New candidate JEP: 398: Deprecate the Applet API for Removal
- Monitoring Deserialization to Improve Application Security
- Reducing MD5 (and SHA) overheads
- JEP proposed to target JDK 17: 356: Enhanced Pseudo-Random Number Generators
- Investigating MD5 overheads
- Oracle JRE and JDK Cryptographic Roadmap
- Oracle JRE and JDK Cryptographic Roadmap
- JDK 15 Security Enhancements
- Oracle JRE and JDK Cryptographic Roadmap
-
Keeping Your Java Applications Secure - Cryptographic Improvements and Best Practices
- SHA-3 based digital signatures support
- Record Serialization
- JDK 14 Security Enhancements
-
Why We Hate Java Serialization
-
What’s New in Java Security?
- JDK 13 Security Enhancements
- JDK 12 Security Enhancements
- Oracle's Plan for Distrusting Symantec TLS Certificates in the JDK
-
Safety First
-
The Secret History and Tragic Fate of sun.misc.Unsafe
-
Safety Not Guaranteed: sun.misc.Unsafe and the Quest for Safe Alternatives
Serviceability
- The Limitations of Running a Workload Generator In the Same JVM as the System-Under-Test
-
The Power of JDK Flight Recorder: Efficient Profiling and Troubleshooting for Java Applications
-
Intelligent JVM Monitoring: Combining JDK Flight Recorder with AI
- Quality Outreach Heads-up - JDK 27: Numeric Fields in JSON Thread Dumps
-
Post-Mortem JVM Crash Analysis with jcmd
- Quality Outreach Heads-up - JDK 27: Removal of Deprecated Java Launcher Options
- Episode 53 “Analyzing Crashed JVMs” [IJN]
-
Analyzing Crashed JVMs - Inside Java Newscast #109
-
Intelligent JVM Monitoring: Combining JDK Flight Recorder with AI
- Dissecting the CPU-Memory Relationship in Garbage Collection
- Quality Outreach Heads-up - JDK 26: Jlink Compression Plugin Now Handles -c Option Correctly
-
Mastering JVM Memory Troubleshooting - From OutOfMemoryErrors to Leaks
- Quality Outreach Heads-up - JDK 24: Remote Debugging with jstat and jhsdb Is Deprecated for Removal
- Episode 34 “Doc, JavaDoc and Markdown” [AtA]
- Tutorial: Leveraging JDK Tools and Updates to Help Safeguard Java Applications
- What is Sustaining Engineering?
- Tutorial: JWebserver - Launch the Java Simple Web Server
-
Java 21 Tool Enhancements: Better Across the Board #RoadTo21
- JEP proposed to target JDK 21: 451: Prepare to Disallow the Dynamic Loading of Agents
-
Troubleshooting Native Memory Issues in Java Applications
-
Programmer's Guide to JDK Flight Recorder
- Draft JEP: JDK Packaging Guidelines
-
Programmer's Guide to JDK Flight Recorder
- New candidate JEP: 435: Asynchronous Stack Trace VM API
- JFR Event Stream - Sip of Java
- Exceptions - You don't gotta catch 'em all!
- Announcing Windows support for Java Management Service
- JDK Mission Control Core libraries now available on Maven Central
- "Failed to write core dump"
-
Monitoring and Troubleshooting Tools in the JDK
- JDK Mission Control version 8.0.0 (JMC 8) is now available
- Monitoring Deserialization to Improve Application Security
- Containerized Java Advanced Management Console
- Deciphering the stack trace
- JMC 8.0.0 Early-Access Release
- Troubleshooting Native Memory Leaks in Java Applications
- A crash happened outside the Java Virtual Machine
- Survey on serviceability tools: jinfo, jmap & jstack
-
Continuous Monitoring With JDK Flight Recorder
-
Continuous Monitoring with JDK Flight Recorder
-
JFR: the Black Box of Java Applications
-
Monitoring and Troubleshooting Tools in JDK/bin
-
JDK Mission Control: Where We Are. Where We Are Going.
- Clarifying some confusion around JFR

