RSSAmplifier

Blog

nipafx

You. Me. Java.

nipafx.devRSS feed ↗195 posts

Latest posts

JDK 27 & Valhalla, Now! - Inside Java Newscast #113

JDK 27 entered RDP1, Valhalla's JEP 401 is being merged into JDK main, join our hackathon, and more

Valhalla, Now!

No OpenJDK project has excited Java developers as much as Project Valhalla and no other has strung us along for that long. But now the wait is over!

Avoiding Final Field Mutation

Reflective mutation of final field mutation will soon be disabled by default and should be avoided if possible - here's how

You Must Avoid Final Field Mutation - Inside Java Newscast #110

With JDK 26 / JEP 500 starting to prevent final field mutation through reflection, it is important that Java projects stop employing that practice.

Analysing Crashed JVMs - Inside Java Newscast #109

The Java tool jcmd ("j command") sends diagnostic commands to the JVM, which, at the moment, requires a running JVM, but once candidate JEP 528 is adopted, a lot of the information can be seamlessly extracted from a crashed JVM's core dump, allowing easy post-mortem analysis

Java 27 - Better Language, Better APIs, Better Runtime

Java 25 is the latest release with wide-ranging long-term support. It's a doozy and Java 26 and 27 followed hot on its heels.

Towards Better Checked Exceptions - Inside Java Newscast #107

Java's checked exceptions are both an integral part of the language and one of its most contested features. Let's talk about specific issues with checked exceptions and what could be done about them.

Removal of ThreadPoolExecutor.finalize()

With finalization being deprecated for removal, finalize methods are slowly being removed

LazyConstants in JDK 26 - Inside Java Newscast #106

Lazily initializing fields in Java is error-prone and undermines constant-folding. JDK 26 comes with JEP 526, which previews LazyConstant , a type that lazily initializes a value through a given Supplier .

Carrier Classes; Beyond Records - Inside Java Newscast #105

Carrier classes are a generalization of records that allow Java developers to succinctly define classes with a data-centric API that can participate in pattern matching and reconstruction

Java's Plans for 2026 - Inside Java Newscast #104

In 2026, Java keeps evolving. Here's how the big OpenJDK projects Amber, Babylon, Leyden, Loom, Panama and Valhalla plan to push Java forward.

Java's 2025 in Review - Inside Java Newscast #103

With 2025 coming to a close, let's summarize Java's year and look at the current state of the six big OpenJDK projects as well as a few other highlights.

All Features in Java 26 - Inside Java Newscast #102

Java 26 enters rampdown phase 1, which sets its feature set in stone: HTTP/3 support, performance and AOT improvements, new command-line flags to manage final field mutation, and more

Java 26 Warns of Deep Reflection - Inside Java Newscast #101

Java 26 will issue run-time warnings when a final field is mutated through reflection. This prepares a future change that will make such final field mutation illegal by default to improve Java's integrity.

Q&A About My Work At Oracle's Java Platform Group

Answers to the remaining questions that didn't fit into Inside Java Newscast #100

Try the New Valhalla EA Build - Inside Java Newscast #100

JEP 401, Value Classes and Objects, has recently re-entered "candidate" status and is getting ready to target a release.

Consistent Behavior of new File("")

Prior to this change, a new File("") behaved differently, depending on whether it was queried as a relative or absolute file

Three G1 Improvements - Inside Java Newscast #99

Java's (almost) default garbage collector G1 is undergoing even more improvements

All API Additions From Java 21 to 25

Learn about all API additions between Java 21 and Java 25: scoped values, stream gatherers, class-file API, foreign function and memory API, Javadoc additions, and preview features.

Structured Concurrency in Action

A deep-dive into the structured concurrency API as it is currently proposed

Upgrading From Java 21 To 25: All You Need To Know

Updating from Java 21 to 25 is a smooth experience. Unless you're working on an unlucky project that collected all the little details that change: Whether it's annotation processing, null checks, file operations or the removal of old technologies, Peter collects them all.

Java Architects Answer Your Questions - Inside Java Newscast #97

You asked questions, Java architects have the answers - from switch and if expressions to record identity, from optimal training runs to differentiable programming, and more

HTTP/3 in Java - Inside Java Newscast #96

JEP 517 proposes to update Java's HTTP Client (introduced in Java 11) to be compatible with HTTP/3

Java Gets a JSON API - Inside Java Newscast #95

Java considers itself a "batteries included" language and given JSON's ubiquity as a data exchange format, that means Java needs a JSON API.

Java 25 is ALSO no LTS Version - Inside Java Newscast #94

Java 25, much like Java 21, will be described as a "long-term-support version" despite the fact that that's categorically wrong.

Java 25 Encodes PEM - Inside Java Newscast #93

Java 25 previews an API that transforms PEM (Privacy-Enhanced Mail) texts into cryptographic objects like public or private keys, certificates, and certification lists and vice versa.

Java 25 Brings 18 JEPs 😱 Inside Java Newscast #92

Java 25 will be released on September 16th. Its feature set has been frozen today and it is impressive: 11 finalized features in language, APIs and the runtime plus 7 that are brewing.

Structured Concurrency Revamp in Java 25 - Inside Java Newscast #91

JDK Enhancement Proposal 505 revamps the structured concurrency API in JDK 25 by introducing a configuration and joiners.

JavaOne'25 Highlights - Inside Java Newscast #89

JavaOne 2025 had lots of talks from OpenJDK insiders as well as from community experts - here are some of the highlights

New Null Checks in Inner Class Constructors

The Java compiler will now inject null checks for the outer instance into the constructor of inner classes

Scoped Values in Java 24 - Inside Java Newscast #86

Scoped values enable a method to share immutable data both with its callees within a thread and with child threads in a convenient, safe, scalable way, particular in comparison to thread-local variables.

JDK 24 Deprecates Remote Debugging with jstat And jhsdb For Removal

Due to their reliance on RMI, which the JDK is moving away from, the remote debugging capabilities of jstat and jhsdb are deprecated for removal

Java Language Evolution in 2025 - Inside Java Newscast #84

In 2025, the Java language keeps evolving. Here's how Project Amber plans to push Java forward: from flexible constructor bodies to simplified main, from module imports to primitive and deconstruction patterns, from withers to string templates.

Java's Plans for 2025 - Inside Java Newscast #83

In 2025, Java keeps evolving. Here's how the big OpenJDK projects (Leyden, Valhalla, and more) sans Amber plan to push Java forward.

Java 24 Performance Improvements & Deprecations - Inside Java Newscast #82

Java 24's feature list contains a whopping 24 JDK Enhancement Proposals. Here, we're going to look at the performance improvements and deprecations/removals.

JDK 24 Prepares Restricted Native Access

JEP 472 prepares restricted access to native code through JNI and the FFM API

Java 24 Language & API Changes - Inside Java Newscast #81

Java 24's feature list contains a whopping 24 JDK Enhancement Proposals. Here, we're going to look at the language and API changes.

Java 24 Stops Pinning Virtual Threads (Almost) - Inside Java Newscast #80

On Java 24, virtual threads will no longer be pinned inside synchronized blocks, which increases ease of adoption

Release Your (Java) Projects Like OpenJDK With Tip & Tail - Inside Java Newscast #79

"Tip & tail is a release model for software libraries that gives application developers a better experience while helping library developers innovate faster"

Advanced "Java 101"

Java's success as one of the most used programming languages in the world comes in no small parts from its approachability but what may have been an easy entry into programming in the mid 90s, appears laborious today and so, in recent years, Oracle and OpenJDK have worked to improve the situation.

Big News from Project Valhalla - Inside Java Newscast #77

At JVMLS 2024, project lead Brian Goetz presented the current state of Project Valhalla - this video summarizes the proposed changes to the programming model.

How to Read a JDK Enhancement Proposal - Inside Java Newscast #74

OpenJDK evolves Java through JDK Enhancement Proposals, JEP for short, and uses them to communicate its intentions, but the the devil is in the details

Integrity by Default - Inside Java Newscast #73

Integrity is a cornerstone of the Java Platform as it enables/bolsters reliability, maintainability, security, and performance, but there are operations that undermine it. Now, Java wants to lock them down by default.

Java and AI - A Structured Analysis

What AI development needs and how much Java already has to offer, what it lacks, as well as what it's poised to acquire in the future

JDK 23 Removes COMPAT Locale Provider

With the removal of the JDK's own (somewhat outdated) locale data, all projects must now use the CLDR data or other implement a custom locale data provider

Java and AI? - Inside Java Newscast #72

AI development can be split into three categories: developing an ML model (where Java isn't competitive and is unlikely to become top of the class any time soon), developing an AI-centered product (where Java is well-positioned and will become stringer soon; but does this category matter in the long run?) and adding AI-based features to larger projects (where Java is already very good and will…

Why Update Data-Oriented Programming to Version 1.1?

A review of data-oriented programming version 1.1: What caused the update and what is still left to be improved?

What Happened to Java's String Templates? Inside Java Newscast #71

JDK 23 doesn't contain the string template preview that was present in JDKs 21 and 22. Let's discuss why the feature was removed (probably not for the reasons you think), what a new proposal could look like, and when we may see it.

JDK 23 Changes Default Annotation Processing Policy

Starting with JDK 23, annotation processors in the class path will no longer be executed without further javac configuration

When to use Data-Oriented Programming

How does data-oriented programming compare to object-oriented and functional programming and what are good situations to start using it?