Inside Java
News and views from members of the Java team at Oracle
Sort by: Date | Author | Tag
JDK 28
JDK 27
JDK 26
JDK 25
JDK 24
JDK 23
JDK 22
JDK 21
JDK 20
JDK 19
JDK 18
JDK 17
JDK 16
JDK 15
JDK 14
JDK 13
JDK 12
Artificial Intelligence
Client
Cloud
Community
Concurrency
Core Libraries
Education
Garbage Collectors
HotSpot
Integrity by Default
JDK Flight Recorder
Java Language
Modules
Moved By Java
Networking
Oracle
Performance
Project Amber
Project Babylon
Project Leyden
Project Loom
Project Panama
Project Valhalla
Security
Serviceability
Core Libraries
2026
-
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
2025
- 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
2024
- 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 ?
2023
- 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
2022
- 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]
2021
- 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
2020
- 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

