Java News
JEP targeted to JDK 26: 526: Lazy Constants (Second Preview)The following JEP is targeted to JDK 26: 526: Lazy Constants (Second Preview)
Read MoreQuality Outreach Heads-up - JDK 26: HttpClient Supports TLS Named Groups & Signature Schemes
This Heads-Up is part of the regular communication sent to the projects involved; it covers how HttpClient supports TLS signature schemes and named groups configured on SSLParameters.
Read MoreONNX Based Generative AI LLMs in Java with Project Babylon
The Open Neural Network Exchange (ONNX) serves as a universal format for representing machine learning models, facilitating their deployment across diverse platforms. Traditionally, Large Language Models (LLMs) are developed in Python using frameworks like PyTorch, TensorFlow, or scikit-learn, and then exported to ONNX for execution. In this presentation, we demonstrate how Java, a language not traditionally associated with AI modeling, can be utilized to produce ONNX models. We also explore the concept of ONNX-based Generative AI LLMs in Java, leveraging Project Babylon's code reflection capabilities. The presentation showcases a practical Java example of an LLM, detailing its transformation into the ONNX format and subsequent execution.
Read MoreJEP targeted to JDK 26: 525: Structured Concurrency (6th Preview)
The following JEP is targeted to JDK 26: 525: Structured Concurrency (Sixth Preview)
Read MoreSymbolic Modeling and Transformation of Java Code #JVMLS
This session explores code reflection in Project Babylon, demonstrating how Java code can be symbolically modeled as Java code models. It covers the underlying approach, highlights key advantages, and discusses potential limitations.
Read MoreJava 26 Warns of Deep Reflection - Inside Java Newscast #101
Java 26 will issue run-time warnings when a final field is mutated through reflection. This prepares for a future change that will make such final field mutations illegal by default to improve Java's integrity, specifically the keyword final. This will have beneficial effects on maintainability, security, and performance. While the recommendation is to move away from final field mutation, the new permanent command-line option --enable-final-field-mutation allows it for selected modules. To ease migration, the more general but temporary option --illegal-final-field-mutation was also introduced.
Read MoreJEP targeted to JDK 26: 524: PEM Encodings of Cryptographic Objects (Second Preview)
The following JEP is targeted to JDK 26: 524: PEM Encodings of Cryptographic Objects (Second Preview)
Read MoreBeyond the Vector API - A Quest for a Lower Level API #JVMLS
Throughout the project, the Vector API balanced providing a cross-platform API with staying close to the metal, performance-wise. While the project succeeded in that goal, the Vector API had to give up some important functionality when it didn't fit the design. As a result, the API became unsuitable for implementing an important class of vectorized algorithms that depend on access to particular hardware functionality. With recent progress in Project Panama (on the Foreign Function & Memory API and jextract), new opportunities have emerged to bring Java even closer to hardware. The talk covers how the Vector API evolved (from machine code snippets to JVM intrinsics), and then focus on a novel approach to providing access to individual machine code instructions from Java code in a performant manner. Such a "hardware intrinsics" API complements the Vector API by providing access to low-level platform-specific primitives. It opens up new opportunities for the Java Platform and enables simplifications in the Vector API, JDK, and JVM implementations.
Read MoreDeep Dive into Gatherers - JEP Cafe #24
This JEP Café takes you through everything you can do with Gatherers, added to JDK 24 and available in JDK 25, the version you are going to use for your business applications. Along with many examples, it shows you the basics of mapping and filtering, how you can create and manage an internal mutable state to limit your stream, and sort them. It shows you how you can properly interrupt a stream when you need, and how you can avoid resource leaking and race conditions in the use of the API. It also shows you how you can leverage some available optimizations by declaring your integrators greedy when you can. One of the greatest features of the Stream API is that you can decide to go parallel. So parallel Gatherers are covered, along with the use of non-parallel Gatherers in parallel streams. At the end of this video you will know eveything you need to write efficient and correct Gatherers, but also when you should use them, and when you should stay away from them.
Read MoreJEP targeted to JDK 26: 516: Ahead-of-Time Object Caching with Any GC
The following JEP is targeted to JDK 26: 516: Ahead-of-Time Object Caching with Any GC
Read MoreSourced from https://inside.java via RSS.