Conference50min
Teaching an Old Handle New Tricks: From Core Reflection to FFM
The talk explains how Java reflection is inefficient, and how method handles and var handles create reusable, typed capabilities that better match JVM linkage. It also shows how this design supports newer APIs like Foreign Function & Memory and serialization, illustrating resilient platform design.
talk.summaryAiDisclaimer
Maurizio CimadamoreOracle
Viktor KlangOracle
talkDetail.whenAndWhere
Wednesday, October 7, 15:10-16:00
TBA 8
talks.roomOccupancytalks.noOccupancyInfo
Core reflection has been a cornerstone of Java since Java SE 1.1. It provides a unified model for inspecting classes, invoking methods and accessing fields. But reflection is also inefficient. Every reflective call must check access, handle argument conversions like boxing and, finally, invoke the target.
Method handles, introduced in Java 7, address this problem with an execution model that closely mirrors the JVM's. A method handle is one resolved executable operation: a typed capability whose access rights and type are established up front. In Java 9, var handles extended this model to fields and array elements.
In this talk, we’ll show how this trick—moving expensive, one-off setup work out of the hot path—has paid dividends across the Java platform. Method and var handles now sit at the core of many modern runtime features, making string concatenation more efficient, revolutionizing native interop with the Foreign Function & Memory API, and enabling serialization to be redesigned on safer foundations.
This is both an advanced tour of an overlooked part of the Java runtime and a story of resilient platform design: how the right hammer keeps finding new nails.
Method handles, introduced in Java 7, address this problem with an execution model that closely mirrors the JVM's. A method handle is one resolved executable operation: a typed capability whose access rights and type are established up front. In Java 9, var handles extended this model to fields and array elements.
In this talk, we’ll show how this trick—moving expensive, one-off setup work out of the hot path—has paid dividends across the Java platform. Method and var handles now sit at the core of many modern runtime features, making string concatenation more efficient, revolutionizing native interop with the Foreign Function & Memory API, and enabling serialization to be redesigned on safer foundations.
This is both an advanced tour of an overlooked part of the Java runtime and a story of resilient platform design: how the right hammer keeps finding new nails.
Maurizio Cimadamore
Maurizio Cimadamore is a compiler architect at Oracle. He is currently working on the language and runtime aspects of many foundational projects that will change the shape of the Java platform, such as Project Valhalla and Project Panama.
In the previous years, he has contributed to the design and implementation of several features of the Java programming language, such as diamond inference, lambda expressions and local variable type-inference. Maurizio holds a PhD in language design and implementation.
In the previous years, he has contributed to the design and implementation of several features of the Java programming language, such as diamond inference, lambda expressions and local variable type-inference. Maurizio holds a PhD in language design and implementation.
Viktor Klang
Viktor is a Software Architect in the Java Platform Group at Oracle.
For more than two decades, he has focused on enabling developers to solve problems with maximal productivity and maintainability.
Specializing in developer ergonomics in the realm of concurrent, parallel, and distributed programming; he has contributed to the standard libraries of several major programming languages, been involved in more than a dozen Open Source projects, and has spoken at numerous conferences and universities.
For more than two decades, he has focused on enabling developers to solve problems with maximal productivity and maintainability.
Specializing in developer ergonomics in the realm of concurrent, parallel, and distributed programming; he has contributed to the standard libraries of several major programming languages, been involved in more than a dozen Open Source projects, and has spoken at numerous conferences and universities.