# valhalla

Published articles for valhalla.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## How Java Platform Features Can Strengthen Its Use for AI

DevFeed: [How Java Platform Features Can Strengthen Its Use for AI](<https://devfeed.tech/articles/how-does-java-fit-into-the-world-of-ai-and-how-can-it-become-an-even-better-fit-88092.md>)

Original publisher: [Read original article](<https://inside.java/2026/10/15/java-fit-ai-world/>)

Author: Paul Sandoz

Published: 2026-10-15T00:00:00Z

Content type: article

Language: en

Sources: [Inside Java](<https://devfeed.tech/sources/inside-java.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [openjdk](<https://devfeed.tech/topics/openjdk.md>), [Project Valhalla](<https://devfeed.tech/topics/project-valhalla.md>), [Frontier AI](<https://devfeed.tech/topics/frontier-ai.md>)

Tags: [artificial-intelligence](<https://devfeed.tech/tags/artificial-intelligence.md>), [java](<https://devfeed.tech/tags/java.md>), [openjdk](<https://devfeed.tech/tags/openjdk.md>), [project-amber](<https://devfeed.tech/tags/project-amber.md>), [project-babylon](<https://devfeed.tech/tags/project-babylon.md>), [project-panama](<https://devfeed.tech/tags/project-panama.md>), [project-valhalla](<https://devfeed.tech/tags/project-valhalla.md>), [valhalla](<https://devfeed.tech/tags/valhalla.md>)

### AI overview

This video discusses Java's suitability for AI and how current and future platform features may strengthen it. It covers developments in the language, libraries, and runtime, including OpenJDK Projects Amber, Babylon, Valhalla, and Panama.

### Source excerpt

In this video, we discuss why Java is already a good choice for AI and how existing and future Java platform features can make it even stronger. We explore developments across the language, libraries, and runtime, including OpenJDK Projects Amber, Babylon, Valhalla, and Panama, along with smaller improvements that can have a big impact when combined.

## Java Runtime Performance, Observability, and Garbage Collection in the Age of AI Coding Agents

DevFeed: [Java Runtime Performance, Observability, and Garbage Collection in the Age of AI Coding Agents](<https://devfeed.tech/articles/java-the-year-of-the-runtime-85142.md>)

Original publisher: [Read original article](<https://inside.java/2026/10/11/devoxxbelgium-runtime-year-keynote/>)

Author: Ron Pressler

Published: 2026-10-11T00:00:00Z

Content type: article

Language: en

Sources: [Inside Java](<https://devfeed.tech/sources/inside-java.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [openjdk](<https://devfeed.tech/topics/openjdk.md>), [Project Valhalla](<https://devfeed.tech/topics/project-valhalla.md>)

Tags: [ai-coding-agents](<https://devfeed.tech/tags/ai-coding-agents.md>), [artificial-intelligence](<https://devfeed.tech/tags/artificial-intelligence.md>), [coding-agents](<https://devfeed.tech/tags/coding-agents.md>), [garbage-collection](<https://devfeed.tech/tags/garbage-collection.md>), [hotspot](<https://devfeed.tech/tags/hotspot.md>), [java](<https://devfeed.tech/tags/java.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [keynote](<https://devfeed.tech/tags/keynote.md>), [performance](<https://devfeed.tech/tags/performance.md>), [programming](<https://devfeed.tech/tags/programming.md>), [project-leyden](<https://devfeed.tech/tags/project-leyden.md>), [project-valhalla](<https://devfeed.tech/tags/project-valhalla.md>), [runtime](<https://devfeed.tech/tags/runtime.md>), [valhalla](<https://devfeed.tech/tags/valhalla.md>)

### AI overview

This Devoxx Belgium keynote discusses why Java's JVM and standard library are well suited to a shift in which AI coding agents make language syntax less central. It highlights ongoing improvements in performance, observability, garbage collection, and usability, alongside major innovations in Projects Valhalla, Leyden, and Lilliput.

### Source excerpt

As AI coding agents make language syntax less central, runtime performance and operability become increasingly important. This keynote explores why Java's JVM and standard library are well suited to this shift: newer JDKs continually improve performance, observability, garbage collection, and usability while preserving the programming model, with major innovations underway in Projects Valhalla, Leyden, and Lilliput.

## Just-In-Time Compilation for Java Performance: Recent and Ongoing Improvements

DevFeed: [Just-In-Time Compilation for Java Performance: Recent and Ongoing Improvements](<https://devfeed.tech/articles/just-in-time-compilation-for-java-performance-recent-and-ongoing-improvements-57498.md>)

Original publisher: [Read original article](<https://inside.java/2026/09/21/jit-for-java-performance/>)

Author: Roberto Castañeda Lozano

Published: 2026-09-21T00:00:00Z

Content type: article

Language: en

Sources: [Inside Java](<https://devfeed.tech/sources/inside-java.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [JIT](<https://devfeed.tech/topics/jit.md>), [openjdk](<https://devfeed.tech/topics/openjdk.md>)

Tags: [compilation](<https://devfeed.tech/tags/compilation.md>), [compilers](<https://devfeed.tech/tags/compilers.md>), [hotspot](<https://devfeed.tech/tags/hotspot.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [java](<https://devfeed.tech/tags/java.md>), [java-language](<https://devfeed.tech/tags/java-language.md>), [jit](<https://devfeed.tech/tags/jit.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [openjdk](<https://devfeed.tech/tags/openjdk.md>), [performance](<https://devfeed.tech/tags/performance.md>), [valhalla](<https://devfeed.tech/tags/valhalla.md>)

### AI overview

A talk overview covering recent and ongoing improvements in Java Virtual Machine just-in-time compilers, including their role in Java performance and related OpenJDK projects.

### Source excerpt

Just-in-time (JIT) compilation within the JVM is essential to Java's performance and plays a central role in ongoing OpenJDK projects such as Valhalla, Leyden, and Panama. JIT compilation is constantly evolving to support the evolution of the Java language, its main application areas, deployment models, and underlying hardware. This talk provides an overview of recent performance improvements delivered by the JVM's JIT compilers, both as part of and in addition to OpenJDK projects, and highlights some of the most significant ongoing developments in this area.

## Episode 68 "Operator Overloading with Type Classes" \[AtA\]

DevFeed: [Episode 68 "Operator Overloading with Type Classes" \[AtA\]](<https://devfeed.tech/articles/episode-68-operator-overloading-with-type-classes-ata-15128.md>)

Original publisher: [Read original article](<https://inside.java/2026/08/27/podcast-068/>)

Author: Nicolai Parlog

Published: 2026-08-27T00:00:00Z

Content type: article

Language: en

Sources: [Inside Java](<https://devfeed.tech/sources/inside-java.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [openjdk](<https://devfeed.tech/topics/openjdk.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [classes](<https://devfeed.tech/tags/classes.md>), [java](<https://devfeed.tech/tags/java.md>), [java-language](<https://devfeed.tech/tags/java-language.md>), [openjdk](<https://devfeed.tech/tags/openjdk.md>), [project-valhalla](<https://devfeed.tech/tags/project-valhalla.md>), [valhalla](<https://devfeed.tech/tags/valhalla.md>)

### AI overview

An Ask the Architects episode discusses how OpenJDK's Project Valhalla is improving Java's support for custom numerical types, including possible limited operator overloading for custom value types.

### Source excerpt

How OpenJDK's Project Valhalla is improving Java's support for custom numerical types.

## Value Classes Still Need Compiler Sympathy

DevFeed: [Value Classes Still Need Compiler Sympathy](<https://devfeed.tech/articles/value-classes-still-need-compiler-sympathy-15126.md>)

Original publisher: [Read original article](<https://inside.java/2026/08/24/value-classes-compiler-sympathy/>)

Author: Johan Sjölén

Published: 2026-08-24T00:00:00Z

Content type: article

Language: en

Sources: [Inside Java](<https://devfeed.tech/sources/inside-java.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Project Valhalla](<https://devfeed.tech/topics/project-valhalla.md>), [JEP-401](<https://devfeed.tech/topics/jep-401.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [inlining](<https://devfeed.tech/topics/inlining.md>), [code analysis](<https://devfeed.tech/topics/code-analysis.md>)

Tags: [abi](<https://devfeed.tech/tags/abi.md>), [abstraction](<https://devfeed.tech/tags/abstraction.md>), [adapter](<https://devfeed.tech/tags/adapter.md>), [analysis](<https://devfeed.tech/tags/analysis.md>), [annotation](<https://devfeed.tech/tags/annotation.md>), [apply](<https://devfeed.tech/tags/apply.md>), [argument](<https://devfeed.tech/tags/argument.md>), [c2](<https://devfeed.tech/tags/c2.md>), [class](<https://devfeed.tech/tags/class.md>), [classes](<https://devfeed.tech/tags/classes.md>), [code](<https://devfeed.tech/tags/code.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [identity](<https://devfeed.tech/tags/identity.md>), [jep-401](<https://devfeed.tech/tags/jep-401.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [openjdk](<https://devfeed.tech/tags/openjdk.md>), [optimize](<https://devfeed.tech/tags/optimize.md>), [profiling](<https://devfeed.tech/tags/profiling.md>), [project-valhalla](<https://devfeed.tech/tags/project-valhalla.md>), [semantic](<https://devfeed.tech/tags/semantic.md>), [state](<https://devfeed.tech/tags/state.md>), [valhalla](<https://devfeed.tech/tags/valhalla.md>), [value](<https://devfeed.tech/tags/value.md>), [values](<https://devfeed.tech/tags/values.md>)

### AI overview

JDK 28's preview value classes can enable flattening and scalarization, but they do not guarantee faster code. The source shows that immutable final fields can hold large values in flattened form, while mutable fields may use references to preserve tear-free assignment. C2 can eliminate allocations in a value transformation loop; the comparable identity-record example retained allocations. A further allocation source is generic type erasure: a megamorphic call through an inherited `Object apply(Object)` descriptor forces scalarized values to be materialized as heap references. Explicitly redeclaring the typed method in the interface (`Carrier apply(LargeValue)`) lets values cross that dynamic call boundary scalarized; in the reported reproducer, allocation fell from 192 bytes per invocation to zero. The author recommends profiling and inspecting generated code because compiler optimizations depend on context.

### Source excerpt

Declaring a value class is first and foremost a semantic decision. It tells our fellow programmers that its instances are defined entirely by their state and do not need identity. That clearer model is valuable in itself! The JVM's additional freedom to optimize how those values are represented is a welcome bonus. C2 can do amazing things with that freedom, but it cannot always recover information hidden behind abstraction boundaries. Profiling and inspecting the generated code remain the best ways to understand what is happening. To get the best results, we may still need to have a little sympathy for the compiler.

## Project Valhalla Uses Java Value Classes to Reduce Domain-Primitive Overhead

DevFeed: [Project Valhalla Uses Java Value Classes to Reduce Domain-Primitive Overhead](<https://devfeed.tech/articles/rethink-domain-primitives-with-valhalla-41529.md>)

Original publisher: [Read original article](<https://dfa1.github.io/articles/rethink-domain-primitives-with-valhalla.html>)

Author: Davide Angelocola

Published: 2026-05-16T00:00:00Z

Content type: opinion

Language: en

Sources: [Davide Angelocola](<https://devfeed.tech/sources/davide-angelocola.md>)

Topics: [Project Valhalla](<https://devfeed.tech/topics/project-valhalla.md>), [JEP-401](<https://devfeed.tech/topics/jep-401.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [Java](<https://devfeed.tech/topics/java.md>), [software-architecture](<https://devfeed.tech/topics/software-architecture.md>)

Tags: [compiler](<https://devfeed.tech/tags/compiler.md>), [heap](<https://devfeed.tech/tags/heap.md>), [java](<https://devfeed.tech/tags/java.md>), [jep-401](<https://devfeed.tech/tags/jep-401.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [memory](<https://devfeed.tech/tags/memory.md>), [performance](<https://devfeed.tech/tags/performance.md>), [project-valhalla](<https://devfeed.tech/tags/project-valhalla.md>), [scala](<https://devfeed.tech/tags/scala.md>), [valhalla](<https://devfeed.tech/tags/valhalla.md>)

### AI overview

The article examines how Project Valhalla value classes can make domain-specific types more practical in performance-sensitive Java code. It focuses on flattening wrappers into arrays, registers, and object fields to reduce heap allocation, indirection, memory use, cache misses, and garbage-collection overhead.

### Source excerpt

Your Compiler Is Already Part of Your Security Team made the case for domain primitives: encode constraints in types, the compiler enforces them forever. The recurring objection -- a wrapper class per int is one heap object per value, plus a pointer to reach it. Fine at the boundary; questionable in a hot loop where allocations and cache misses dominate.

## iOS Density, Scroll Physics, and Accessibility

DevFeed: [iOS Density, Scroll Physics, and Accessibility](<https://devfeed.tech/articles/ios-density-scroll-physics-and-accessibility-19339.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/ios-density-scroll-and-accessibility/>)

Author: Shai Almog

Published: 2026-04-24T00:00:00Z

Content type: article

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [iOS](<https://devfeed.tech/topics/ios.md>), [Java](<https://devfeed.tech/topics/java.md>), [Project Valhalla](<https://devfeed.tech/topics/project-valhalla.md>), [Web Accessibility (a11y)](<https://devfeed.tech/topics/web-accessibility.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [ios](<https://devfeed.tech/tags/ios.md>), [java](<https://devfeed.tech/tags/java.md>), [project-valhalla](<https://devfeed.tech/tags/project-valhalla.md>), [valhalla](<https://devfeed.tech/tags/valhalla.md>)

### AI overview

This Codename One update explains that its iOS pixel-density lookup table omitted several newer iPhone models, causing inaccurate physical-unit rendering. The table and unknown-device fallback were updated, and the article also discusses iOS performance work related to Java, Project Valhalla, and the Vector API.

### Source excerpt

If you have shipped to an iPhone 14 Pro or anything newer, your density calculations have been wrong until this week. Also in this update, Codename One delivers the performance benefits that Java developers are still waiting on from the Vector API and Project Valhalla -- available today, and already making our Base64 on iOS faster than Apple's own.

## Report card: Java 19 and the end of Kotlin

DevFeed: [Report card: Java 19 and the end of Kotlin](<https://devfeed.tech/articles/report-card-java-19-and-the-end-of-kotlin-20968.md>)

Original publisher: [Read original article](<https://jakewharton.com/report-card-java-19-and-the-end-of-kotlin/>)

Published: 2022-09-20T00:00:00Z

Content type: opinion

Language: en

Sources: [Jake Wharton](<https://devfeed.tech/sources/jake-wharton.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [developer](<https://devfeed.tech/tags/developer.md>), [feature](<https://devfeed.tech/tags/feature.md>), [future](<https://devfeed.tech/tags/future.md>), [java](<https://devfeed.tech/tags/java.md>), [java-language](<https://devfeed.tech/tags/java-language.md>), [jdk](<https://devfeed.tech/tags/jdk.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [project-valhalla](<https://devfeed.tech/tags/project-valhalla.md>), [report](<https://devfeed.tech/tags/report.md>), [update](<https://devfeed.tech/tags/update.md>), [valhalla](<https://devfeed.tech/tags/valhalla.md>)

### AI overview

The article reviews how Java 19 compares with predictions made three years earlier, grading features such as local methods, text blocks, records, sealed hierarchies, type patterns, and virtual threads. It concludes that Java remains strong, Kotlin has continued to evolve, and developers should use the latest JDK rather than wait for an OpenJDK LTS release.

### Source excerpt

Three years ago I gave the talk "What's new in Java 19: The end of Kotlin?" which forecasted what a future Java language would look like in September 2022 when Java 19 was released. Check your calendars, folks. It's September 2022 right now and Java 19 was released today! As expected my predictions were not perfect, but I'm pretty happy with the results. Let's check in with each feature and see how my predictions fared report-card style1. Local methods This feature allows for methods to be declared inside of other methods making them effectively private to that method. public static boolean anyMatch(Graph graph, Predicate<Node> predicate) { var seen = new HashSet<Node>(); boolean hasMatch(Node node) { if (!seen.add(node)) return false; // already seen if (predicate.test(node)) return true; // match! return node.getNodes().stream().anyMatch(n -> hasMatch(n)); } return hasMatch(getRoot()); } Grade: F 🔴 Working support for local methods was added to a branch in Project Amber in October 2019. It seemed like a slam dunk, but a JEP for the feature was never created. The branch still sits in the Project Amber repo unchanged in three years. If I had to guess, all eyes in Amber are focused on pattern matching and its related features. Hopefully someday local methods can be picked back up as a proposed feature. Text blocks A multiline string literal for when one line just isn't enough. System.out.println(""" SELECT * FROM users WHERE name LIKE 'Jake %' """); Grade: A 🟢 Delivered in Java 15. Records A read-only type that exists solely for carrying data with strong, semantic names. record Person(String name, int age) { } Grade: A 🟢 Delivered in Java 16. Sealed hierarchies Define the list of permitted subtypes of your class or interface and prevent any others. sealed interface Developer { } record Person(String name, int age) extends Developer { } record Business(String name) extends Developer { } Grade: A 🟢 Delivered in Java 17. Type patterns Declare a new name to bind when a t