Java Digest # 36: график выхода JDK 27, Spring Framework 7 в деталях и постмортем OOMKill после миграции на JDK 17

Всем привет! 👋👋👋👋👋 Мы — Java-разработчики Т-Банка: Андрей , Арсений , Роман , Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом. В этом выпуске разбираем, почему G1 в JDK 27 окончательно прописывается дефолтным сборщиком мусора, и смотрим, что там с очередным, двенадцатым по счету инкубатором Vector API (спойлер: все по-прежнему ждем Valhalla). Заглянем в Netflix, посмотрим, как раскатили AOT из Project Leyden в прод и срезали время старта сервисов на 15—20%. Поговорим про то, как снимать heap-дампы с прода и не получить по шапке от безопасников, а заодно разберемся, зачем вообще были нужны гибкие конструкторы из Java 25. Посмотрим обзор фич Java 26 от Николая Парлога. Из любопытного — статья, где автор 18 месяцев гонял на проде два одинаковых сервиса на Spring Boot и Node.js и в итоге насчитал разницу в 24 тысячи долларов. Ну и пробежимся по свежим релизам: Micronaut 5.0, Quarkus 3.35 и 3.36, Spring AI и не только. Поехали!

https://habr.com/ru/companies/tbank/articles/1043556/

#java #jdk #spring #quarkus #micronaut #jep #jvm #aotкомпиляция #jdk27

Java Digest # 36: график выхода JDK 27, Spring Framework 7 в деталях и постмортем OOMKill после миграции на JDK 17

Всем привет! 👋👋👋👋👋 Мы — Java-разработчики Т-Банка: Андрей , Арсений , Роман , Константин и Константин. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и...

Хабр

Confused by the exploding number of #AI tools in the #JVM ecosystem? Teams mix #SpringAI, #LangChain4j, MCP & #Ollama without understanding the layers underneath. Artur Skowronski explains what each part of the #Java AI stack is actually for: https://javapro.io/2026/06/03/the-gen-ai-iceberg-java-tooling-edition/

@langchain4j

Wednesday Links - Edition 2026-06-03

Why I Banned ThreadLocal from the Exeris Kernel (And What Replaced It) (4...

DEV Community
Bon sang de bon soir ! Avec ce compilateur Rust, je peux écrire du code Rust qui s'exécute sur la JVM !
Donc, je peux écrire du code extrêmement déterministe qui bénéficie quand même des capacités de Java à optimiser le code dynamiquement ? C'est à creuser. https://github.com/IntegralPilot/rustc_codegen_jvm #rustlang #jvm #compilateur #expérience #optimisation
GitHub - IntegralPilot/rustc_codegen_jvm: Toolchain to create JVM-ready Java bytecode from Rust MIR.

Toolchain to create JVM-ready Java bytecode from Rust MIR. - IntegralPilot/rustc_codegen_jvm

GitHub

JDK 27 Compact Object Headers: как сбросить до 30% кучи без кроссфита и жестких диет

Каждый Java-объект в HotSpot начинается со служебного заголовка размером 12 байт. В JDK 27 по умолчанию он сжимается до 8 — это JEP 534, финальный шаг внедрения Compact Object Headers. Для типовых бэкендов это 5–15% экономии heap, для приложений с миллионами мелких объектов (особенно на Scala, Clojure и иммутабельных коллекциях) — до 30%, без изменений в прикладном коде.

https://habr.com/ru/articles/1041854/

#Java #JVM #HotSpot #OpenJDK #JDK_27 #JEP_534 #Compact_Object_Headers #Project_Lilliput #GC #Оптимизация_памяти

JDK 27 Compact Object Headers: как сбросить до 30% кучи без кроссфита и жестких диет

Привет, Хабр! Каждый Java-объект в HotSpot начинается со служебного заголовка : метаданные о типе, состояние блокировок, GC-возраст, identity hash, forwarding-указатель при копировании. На 64-битной...

Хабр

rustc_codegen_jvm: Rust compiler backend to emit JVM bytecode

https://github.com/IntegralPilot/rustc_codegen_jvm

#Rust #JVM #Programming

GitHub - IntegralPilot/rustc_codegen_jvm: Toolchain to create JVM-ready Java bytecode from Rust MIR.

Toolchain to create JVM-ready Java bytecode from Rust MIR. - IntegralPilot/rustc_codegen_jvm

GitHub

TIL: JEP 165 (Compiler Control) https://openjdk.org/jeps/165 lets you tune the JIT per method — disable vectorization, control inlining, print assembly, disable specific intrinsics, and more.

Example:
```json
[
{
"match": "com/example/MyClass.myMethod(I)V",
"c2": {
"Vectorize": false
}
}
]
```
Start with -XX:CompileCommandFile=directives.json

While writing a new book on SIMD and the Java Vector API I always wondered how to isolate auto-vectorization at the method level. Turns out there's a whole toolbox here.

#Java #JVM #VectorAPI #simd

JEP 165: Compiler Control

A custom #Rust compiler backend that emits #Java Virtual Machine bytecode. Compile Rust code into a runnable .jar compatible with #JVM 8+.

https://github.com/IntegralPilot/rustc_codegen_jvm

GitHub - IntegralPilot/rustc_codegen_jvm: Toolchain to create JVM-ready Java bytecode from Rust MIR.

Toolchain to create JVM-ready Java bytecode from Rust MIR. - IntegralPilot/rustc_codegen_jvm

GitHub

Nobody reads documentation — until #LLMs do. @verhas connects three decades of #OpenSource work with a new insight: documentation structured for machines may finally matter.

Discover why he abandoned the tool but not the philosophy: https://javapro.io/2026/02/20/why-i-abandoned-my-30-year-open-source-project/

#JVM #Java #JAVAPRO

H2JVM - A Haskell Library for writing JVM Bytecode

Hi everyone! I have been working on a new library for writing JVM bytecode with Haskell in a nice, high level way and I’d love some feedback on it! The motivation here is for compilers to the JVM so they can focus on the actual code generation, meanwhile H2JVM takes care of all the messy details like StackMapTable analysis, label/offset resolution, etc. Here is a quick example taken from the readme. It generates a simple class file with a single method static int add(int, int) which adds 2 num...

Haskell Community