Avoiding Final Field Mutation
Explores final field mutation in Java via reflection, JDK 26 warnings, and alternatives for frameworks and libraries.
Nicolai Parlog (nipafx) is a Java Developer Advocate at Oracle who shares deep insights on Java through blogs, talks, books, videos, and open-source projects, helping developers learn and grow.
302 articles from this blog
Explores final field mutation in Java via reflection, JDK 26 warnings, and alternatives for frameworks and libraries.
Explains upcoming JDK restrictions on final field mutation via reflection and how to adapt dependency injection, serialization, and other code.
Explains how to analyze crashed JVMs using jcmd and JEP 528 for debugging Java applications.
Discusses the deprecation and removal of ThreadPoolExecutor.finalize() in JDK 27, highlighting source-incompatible changes and migration guidance.
A deep dive into the LazyConstants preview feature in JDK 26, exploring its API, the concept of laziness in Java, and its evolution from stable values.
Explores the concept of 'carrier classes' in Java, a proposed generalization of records, and discusses recent developments in Project Amber.
A look at Java's 2026 roadmap, covering updates on major OpenJDK projects like Valhalla, Leyden, Amber, and Loom from a Java Developer Advocate.
A review of Java's key developments in 2025, covering major OpenJDK projects like Panama, Loom, and Babylon, from the Inside Java Newscast.
Overview of new features in Java 26, including HTTP/3 support, G1 performance improvements, and updates to structured concurrency.
Java 26 introduces warnings and restrictions on using reflection to mutate final fields, a significant change for developers.
A Java developer answers community questions about working on Oracle's Java Platform Group, the Inside Java Newscast, and team collaboration.
Java Developer Advocate Nicolai Parlog discusses Project Valhalla's new early-access build and JEP 401, resetting expectations for Java's major refactor.
Explains JDK 25 fix making new File("") consistently represent the current user directory, resolving a long-standing inconsistency.
Explores three upcoming improvements to the G1 garbage collector in Java, including simpler write barriers and performance enhancements.
A comprehensive overview of new APIs and features introduced in Java versions 21 through 25, including Scoped Values, Stream Gatherers, and the Foreign Function API.
A deep dive into Java 25's structured concurrency API, covering its features, error handling, and practical application with code examples.
A detailed guide covering key changes, deprecations, and quality heads-up when upgrading from Java 21 to Java 25.
Java architects answer community questions on switch expressions, Leyden, Valhalla, Project Amber, and the future of Java in this Newscast episode.
Explains the upcoming HTTP/3 support in Java's HTTP Client API, detailing the simple API change and connection negotiation.
Explores the early plans and motivations for adding a native JSON API to the Java Development Kit (JDK), focusing on simplicity and basic use cases.