# Project Valhalla

Published articles for Project 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.

## Java 27 Delivers Post-Quantum Cryptography, Future Language Innovation, Helidon 27, JavaFX 27

DevFeed: [Java 27 Delivers Post-Quantum Cryptography, Future Language Innovation, Helidon 27, JavaFX 27](<https://devfeed.tech/articles/java-27-delivers-post-quantum-cryptography-future-language-innovation-helidon-27-javafx-27-30909.md>)

Original publisher: [Read original article](<https://www.infoq.com/news/2026/09/java27-released/>)

Author: Michael Redlich

Published: 2026-09-16T10:00:00Z

Content type: news

Language: en

Sources: [InfoQ](<https://devfeed.tech/sources/infoq.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [java-27](<https://devfeed.tech/topics/java-27.md>), [Post-quantum cryptography](<https://devfeed.tech/topics/post-quantum-cryptography.md>), [Cryptography](<https://devfeed.tech/topics/cryptography.md>), [Security](<https://devfeed.tech/topics/security.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [releases](<https://devfeed.tech/topics/releases.md>)

Tags: [application-security](<https://devfeed.tech/tags/application-security.md>), [architecture-design](<https://devfeed.tech/tags/architecture-design.md>), [cryptography](<https://devfeed.tech/tags/cryptography.md>), [development](<https://devfeed.tech/tags/development.md>), [digital-signature](<https://devfeed.tech/tags/digital-signature.md>), [helidon](<https://devfeed.tech/tags/helidon.md>), [java](<https://devfeed.tech/tags/java.md>), [java-27](<https://devfeed.tech/tags/java-27.md>), [java27-released](<https://devfeed.tech/tags/java27-released.md>), [javafx](<https://devfeed.tech/tags/javafx.md>), [jdk-27](<https://devfeed.tech/tags/jdk-27.md>), [jdk-28](<https://devfeed.tech/tags/jdk-28.md>), [lattice](<https://devfeed.tech/tags/lattice.md>), [module](<https://devfeed.tech/tags/module.md>), [news](<https://devfeed.tech/tags/news.md>), [oracle](<https://devfeed.tech/tags/oracle.md>), [portfolio](<https://devfeed.tech/tags/portfolio.md>), [post-quantum-cryptography](<https://devfeed.tech/tags/post-quantum-cryptography.md>), [preview](<https://devfeed.tech/tags/preview.md>), [project-valhalla](<https://devfeed.tech/tags/project-valhalla.md>), [quantum-computing](<https://devfeed.tech/tags/quantum-computing.md>), [release](<https://devfeed.tech/tags/release.md>), [security](<https://devfeed.tech/tags/security.md>), [structured-concurrency](<https://devfeed.tech/tags/structured-concurrency.md>), [vector](<https://devfeed.tech/tags/vector.md>)

### AI overview

Oracle released Java 27, the second non-LTS release since JDK 25. Its final feature set contains nine JEPs, including post-quantum hybrid key exchange for TLS 1.3, structured concurrency, compact object headers, JFR data redaction, the Vector API, and PEM encodings for cryptographic objects. Five features remain in preview or incubator stages.

### Source excerpt

Oracle has released version 27 of the Java programming language and virtual machine. As the second non-LTS release since JDK 25, the final feature set includes nine JEPs, five of which are still progressing through the preview and incubator stages. This release focuses on strengthening security, future language innovation, and projects under the auspices of the Java Verified Portfolio. By Michael Redlich

## 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: [JDK 28](<https://devfeed.tech/topics/jdk-28.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>)

Tags: [compiler](<https://devfeed.tech/tags/compiler.md>), [immutability](<https://devfeed.tech/tags/immutability.md>), [jdk-28](<https://devfeed.tech/tags/jdk-28.md>), [jep-401](<https://devfeed.tech/tags/jep-401.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [openjdk](<https://devfeed.tech/tags/openjdk.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [payload](<https://devfeed.tech/tags/payload.md>), [profiling](<https://devfeed.tech/tags/profiling.md>), [project-valhalla](<https://devfeed.tech/tags/project-valhalla.md>), [valhalla](<https://devfeed.tech/tags/valhalla.md>)

### AI overview

This article examines value classes as a preview feature in JDK 28 and explains how giving up object identity can enable JVM optimizations such as flattening and scalarization. It also describes limitations caused by representation changes, abstraction boundaries, mutability, and generic virtual calls.

### 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.

## How ParparVM Reached Performance Parity with Warmed Java 25

DevFeed: [How ParparVM Reached Performance Parity with Warmed Java 25](<https://devfeed.tech/articles/how-we-beat-hotspot-performance-by-cheating-but-not-like-that-19212.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/beating-hotspot-performance/>)

Author: Shai Almog

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

Content type: article

Language: en

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

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Code generation](<https://devfeed.tech/topics/code-generation.md>), [C](<https://devfeed.tech/topics/c.md>), [Project Valhalla](<https://devfeed.tech/topics/project-valhalla.md>)

Tags: [benchmark](<https://devfeed.tech/tags/benchmark.md>), [c](<https://devfeed.tech/tags/c.md>), [java](<https://devfeed.tech/tags/java.md>), [memory](<https://devfeed.tech/tags/memory.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [performance](<https://devfeed.tech/tags/performance.md>), [project-valhalla](<https://devfeed.tech/tags/project-valhalla.md>)

### AI overview

This article explains how ParparVM, an ahead-of-time virtual machine that compiles Java bytecode to C, improved from 4.21x slower than warmed Java 25 to geometric-mean parity across ten benchmarks. It describes changes involving heap layout, code generation, allocation, and collection, with correctness checked against HotSpot.

### Source excerpt

ParparVM went from 4.21x slower than warmed Java 25 to geomean parity, with peak memory below the JVM's. The architecture behind it, in C terms.

## 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>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.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>), [Accessibility](<https://devfeed.tech/topics/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.

## KotlinConf 2025 Recordings

DevFeed: [KotlinConf 2025 Recordings](<https://devfeed.tech/articles/kotlinconf-2025-recordings-39350.md>)

Original publisher: [Read original article](<https://kt.academy/article/kotlinconf2025-recordings>)

Published: 2025-07-01T00:00:00Z

Content type: article

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [recommendations](<https://devfeed.tech/topics/recommendations.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Project Valhalla](<https://devfeed.tech/topics/project-valhalla.md>), [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [debugging](<https://devfeed.tech/topics/debugging.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [kotlinconf](<https://devfeed.tech/tags/kotlinconf.md>), [project-valhalla](<https://devfeed.tech/tags/project-valhalla.md>), [recommendations](<https://devfeed.tech/tags/recommendations.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>), [writing](<https://devfeed.tech/tags/writing.md>)

### AI overview

An opinionated list of recommended recordings from KotlinConf 2025, including the keynote, Rich Errors in Kotlin, compiler plugins, Project Valhalla, and debugging and performance tuning in a coroutine world.

### Source excerpt

My list of must-watch from KotlinConf 2025.

## 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