We are looking for a Software Development Engineer who will help us diagnose, debug and resolve bugs reported by our customers as well as improving the overall quality and stability of the JVM. Here in the Stockholm office, we have the unique access to some of the people that act … | Continue reading
The Java Security Engineering team is responsible for the Java platform security libraries and security tools development. The technologies we provide include a rich set of APIs, tools, and implementations of security algorithms and protocols. The Java security APIs span a wide r … | Continue reading
Since Oracle began developing updates for the JDK with the JDK 7 Updates Project in 2011, a lot has happened in the OpenJDK community. The development processes have been constantly adapted, so that today the changes to the updates begin their journey as pull requests on GitHub. … | Continue reading
The Java Platform group is looking for passionate and highly-motivated software engineers to join our world class development engineering effort. Our team is responsible for delivering all aspect of the core Java platform that is used by millions of developers, and used as the fo … | Continue reading
The Java Platform group is looking for passionate and highly-motivated software engineers to join our world class development engineering effort. Our team is responsible for delivering all aspect of the core Java platform that is used by millions of developers, and used as the fo … | Continue reading
The ongoing introduction of pattern matching to Java has put more weight on some language features than on others and unbalanced the language. In Java 23, primitive patterns will fix this regarding primitive types in `instanceof` and `switch`. This episode also goes over other up … | Continue reading
This Heads-Up is part of the regular communication sent to the projects involved, it covers a Unicode CLDR updates in JDK 20 and 23. | Continue reading
The following JEP is targeted to JDK 23: 464: Class-File API (Second Preview)... | Continue reading
New Java Platform Extension for VS Code Release | Continue reading
On March 25, 2024 Apple released macOS 14.4.1 and indicated on their support site that it addresses the issue described in this article. Oracle can confirm that after applying macOS 14.4.1 we are unable to reproduce the problem. We have updated this article accordingly… | Continue reading
In JDK 22 we resolved a performance issue that had been plaguing the FFM API for a while. The effect of this optimization is more broadly applicable to Java code using try-with-resources, or just any untaken catch block... | Continue reading
The Wayland-based desktop is replacing X11 on more and more Linux distros. But like many applications, JDK is still X11-based. OpenJDK Project Wakefield is an effort to first support JDK running on Wayland in X11 compatibility mode, and followed up by the much larger effort to ha … | Continue reading
The method handles API in the java.lang.invoke package is a powerful reflection and code generation API that has extensive JIT support as well. In this blog post I will give an overview of this API. I will go over some of the most commonly used parts of the API, but this is not a … | Continue reading
JDK 22 is here! Let's take a look! | Continue reading
JDK 22 was released on March 19, 2024! As with my previous blogs, I have compiled a list of what I think are the most interesting and useful security enhancements in this release. I have also grouped them into appropriate categories (crypto, TLS, etc) which should make it easier … | Continue reading
JavaOne Returns to the San Francisco Bay Area! | Continue reading
Oracle is proud to announce the general availability of JDK 22 for developers, enterprises, and end-users… | Continue reading
Apple’s final release of the 14.4 update to macOS 14 Sonoma causes some Java applications on Apple silicon systems (M1/M2/M3) to terminate unexpectedly. The issue is not present on Intel-based systems, and it affects all supported Java releases… | Continue reading
JDK 22 is set to be released on March 19th! In this episode of the Inside Java Newscast, we will review all the key changes included in this release by going through the release notes of JDK 22... | Continue reading
Let's write a GitHub Crawler and let's throw in everything Java (21) has to offer: virtual threads and structured concurrency, pattern matching and data-oriented programming, type inference, records, and sealed types, text blocks and template strings, a modern … | Continue reading
The latest long term support release of the JDK delivers generational support for the Z Garbage Collector. Netflix has switched by default from G1 to Generational ZGC on JDK 21 and later, because of the significant benefits of concurrent garbage col… | Continue reading
In the dynamic landscape of software development, security remains paramount. This session offers a comprehensive showcase of the security enhancements after JDK17. From the evolution of modern cryptographic algorithms to the intricacies of JDK security configuration, API advance … | Continue reading
In this article we will explain how we can use Code Reflection to implement the Triton programming model in Java as an alternative to Python... | Continue reading
Java 22 has many language features, Java 8 could only dream of - let’s see what (dirty) tricks we can play with: we’ll see how to pattern-match Optional, how to expand a sealed type hierarchy, why nested switches may (?) be good for documentation, and how a reverse instanceof che … | Continue reading
Project Leyden aims to improve the startup time, warmup time, and footprint of Java applications by enabling developers to shift computation forward and backward in time. We’ll dive into what that means, how it could work, and review recent progress. Recorded during Jfokus 2024. … | Continue reading
In Sustaining Engineering, we track down the underlying issue while also helping the customer work around the problem. It’s a bit like being a detective... | Continue reading
jlink, introduced in JDK 9, is a powerful command line tool for building custom Java runtimes. In this episode of Stack Walker, we look at the history behind the development of jlink and how it can be used to build a runtime optimized for your application. | Continue reading
A review of the past four years in the life of the OpenJDK Community, and a look at what’s ahead. Recorded at FOSDEM 2024. | Continue reading
The OpenJDK Quality Group is promoting the testing of FOSS projects with OpenJDK builds as a way to improve the overall quality of the release. This heads-up is part of a regular communication sent to the projects involved. To learn more about the program, and how-to join, please … | Continue reading
With the finalization of the Foreign Function & Memory API near us, we have spent the last few weeks polishing jextract. We have made several changes, from implementation-only ones (e.g. we now use string templates for all the code generation), to m… | Continue reading
This session discusses recent advancements in the Java programming language, and looks at what’s coming next. Recorded during Jfokus 2024. Make sure to check the show-notes. | Continue reading
Virtual Threads graduated to a permanent feature in JDK 21 with huge interest and uptake in the Java ecosystem. There’s a lot more to do! This session will go through the current efforts on Java monitors, I/O, and other areas that will improve this feature in future JDK releases. … | Continue reading
This post describes a case in a production compiler (C2, the JDK’s optimizing JIT compiler) where we have figured out that the right trade-off is to actually reduce the amount of program information fed to the compiler.... | Continue reading
Java 22 brings multi source-file execution to the platform. It allows us to run programs consisting of multiple source files and even dependencies with just a simple java command. For experienced developers, this will make exploration and experimentation simpler but it’s a real g … | Continue reading
In this article we will explain how to emulate aspects of C#’s Language Integrated Query (LINQ) in Java using Code Reflection. Specifically, LINQ’s capability to enable translation of LINQ queries (C# expressions) to SQL statements... | Continue reading
JNI is, to date, the only way to access native libraries from Java code, but JNI's brittle and convoluted programming model makes it tedious to use at scale. But no more: JDK's 22 Foreign Function & Memory API provides a safe, modern and efficient way to access foreign memory and … | Continue reading
In data-oriented programming (DOP), we model data as data and polymorphic behavior with pattern matching. This talk will introduce the concept of DOP and its four principles: model the data, the whole data, and nothing but the data data is immutable validate at the bounday make … | Continue reading
Embark on an exploration of Java 21’s groundbreaking features. From String Templates to Sequenced Collections, Generational ZGC to Structured Concurrency, this session empowers you to master the latest advancements and leverage them to create efficient, future-proof code. Record … | Continue reading
Another JDK release, another version of a post in this series: this time JDK 22 GA is almost here and so I am going to entertain you with latest changes for the stop-the-world garbage collectors for OpenJDK for that release. ;) | Continue reading
In this JEP Café, we will use a lot of the new features added to the JDK in the context of the Data Oriented Programming support: Records, Sealed Types, Pattern Matching, Unnamed Patterns, Exhaustive Switches, as well as the most recent additions to the Stream API: mapMulti() (fr … | Continue reading
In this article we will explain what is automatic differentiation, why it is useful, and how we can use Code Reflection to help implement automatic differentiation of Java methods... | Continue reading
The OpenJDK Quality Group is promoting the testing of FOSS projects with OpenJDK builds as a way to improve the overall quality of the release. This heads-up is part of a regular communication sent to the projects involved. To learn more about the program, and how-to join, please … | Continue reading
Java 21 is here and with it exciting times for the Java ecosystem. Georges Saab, the SVP of Java development at Oracle and Chair of the OpenJDK Governing Board will reflect on the factors that have brought a new wave of enthusiasm for Java and why the future is bright for this pe … | Continue reading
Whether for validation, preparation, or splitting and sharing arguments, it can be quite annoying that Java doesn’t allow statements before the super(...) or this(...) call in a constructor. Luckily Java 22 is about to change that with JEP 447, which previews statements before th … | Continue reading
The OpenJDK Quality Group is promoting the testing of FOSS projects with OpenJDK builds as a way to improve the overall quality of the release. This heads-up is part of a regular communication sent to the projects involved. To learn more about the program, and how-to join, please … | Continue reading
The following JEP is proposed to target JDK 23: 455: Primitive Types in Patterns, instanceof, and switch (Preview)… | Continue reading
The following JEP is targeted to JDK 23: 455: Primitive Types in Patterns, instanceof, and switch (Preview)… | Continue reading
In 2024, Java keeps evolving. Let’s see what the OpenJDK projects Amber, Babylon, Leyden, Lilliput, Loom, Panama, and Valhalla plan for this year and how that will push Java forward. Whether pattern matching or other language improvements, interaction with foreign code, memory, o … | Continue reading