[Перевод] Project Valhalla: 10 спустя

В новом переводе от команды Spring АйО рассмотрим решение старой проблемы в Java: полноценные классы часто слишком дорогие для памяти и процессора. Пример - массив из миллиона, например, точек Point . Сейчас это обычно не миллион точек подряд, а миллион ссылок на объекты в куче. У каждого объекта есть служебные данные, его нужно создать, потом убрать сборщиком мусора. Плюс процессор постоянно прыгает по памяти, а это медленно. Project Valhalla добавляет value class . Это обычный на вид класс с полями, конструктором и методами, но без идентичности объекта. JVM сможет хранить такие данные плотнее: например, прямо внутри массива, без отдельного объекта для каждого значения. JEP 401 планируют включить в JDK 28 как preview . Это еще не финал: value class пока может быть null , а полная поддержка быстрых generics и плотных коллекций появится позже. Но первый рабочий шаг Valhalla уже близко.

https://habr.com/ru/companies/spring_aio/articles/1050938/

#java #kotlin #jdk #valhalla #jdk_28

Project Valhalla: 10 спустя

В Java наконец появляется ответ на старую проблему: полноценные классы часто слишком дорогие для памяти и процессора. Пример - массив из миллиона, например, точек Point . Сейчас это обычно не миллион...

Хабр

Project #Valhalla, Explained: How a Decade of Work Arrives in #JDK

https://www.jvm-weekly.com/p/project-valhalla-explained-how-a

#java

Project Valhalla, Explained: How a Decade of Work Arrives in JDK 28 - JVM Weekly vol. 180

The new JVM Weekly is here... and Ragnarok seems to come, as we finally have Valhalla in the JDK. However, situation is a bit... nuanced.

JVM Weekly

Project Valhalla, Explained: How a Decade of Work Arrives in JDK 28

#java #jdk #jvm #valhalla

https://www.jvm-weekly.com/p/project-valhalla-explained-how-a

Project Valhalla, Explained: How a Decade of Work Arrives in JDK 28 - JVM Weekly vol. 180

The new JVM Weekly is here... and Ragnarok seems to come, as we finally have Valhalla in the JDK. However, situation is a bit... nuanced.

JVM Weekly
Java's Project Valhalla finally lands a preview in JDK 28

Don't hold your breath, though – architect Brian Goetz warns devs it will likely still be preview in next LTS release

theregister
Where does production policy belong in a managed runtime? The thesis behind Eliya, an opinionated OpenJDK 25 distribution, and the one flag it ships. Part 1....
#compliance #eliya #hotspot #JDK #JFR #JVM #Observability #OpenJDK #pcidss #policymechanism #reproduciblebuilds
https://foojay.io/today/where-production-policy-belongs-building-eliya-in-public/
Where production policy belongs: building Eliya in public

Where does production policy belong in a managed runtime? The thesis behind Eliya, an opinionated OpenJDK 25 distribution, and the one flag it ships. Part 1.

foojay

Wenn man mit Java anfängt, stolpert man schnell über verschiedene Begriffe wie Java SE, JDK, JRE oder Java EE oder auch Jakarta EE und ganz ehrlich: Das kann am Anfang ziemlich verwirrend sein.Was gehört zusammen? Was braucht man zum Programmieren? Und was bedeute...

https://magicmarcy.de/java-java-se-jdk-jre-java-ee-was-soll-das

#java #java-se #jdk #jre #jakarta #standard-edition #java-virtual-machine #java-development-kit #java-runtime-environment #enterprise-edition #javaee #jakartaee

Java, Java SE, JDK, JRE, Java EE? Was soll das? | magicmarcy.de

magicmarcy.de | Programmieren für Einsteiger

magicmarcy.de
Performance Improvements in JDK 26 - Inside.java

To give you a clearer view of the performance work happening across the Java platform, this article highlights a selection of notable performance related improvements in JDK 26, grouped into four major areas: JDK Libraries, Garbage Collectors, Compiler, and Runtime.

Inside.java

Did I mention that I hate java.nio.filePath. It must be one of the most stupid APIs in the JDK.

Why? Just check anything around the "empty" Path.
- The empty Path is defined in the docs but there is no .isEmpty() test.
- The empty Path has a size of 1
- The root path '/' has size of 0
- The parent of "x" is not the empty path but null
- Path.of("").resolveSibling("a") which cannot be correct by any definition
- subpath(0, 0) throws instead of returning the empty Path

😠 😡

#Java #jdk #api

Почему многие остаются на Spring Boot 2.7 — и редко говорят об этом публично

Если ориентироваться только на публичные обсуждения, может сложиться впечатление, что большинство проектов уже давно перешло на Spring Boot 3.x. В крайнем случае команда прямо сейчас выполняет миграцию, закрывает несовместимости и движется к актуальному стеку. Но когда разговариваешь с инженерами не в формате доклада и не в режиме «расскажите, как у вас всё идеально устроено», картина оказывается менее однозначной. На практике значительная часть систем всё ещё работает на Spring Boot 2.7 или на версиях из той же технологической эпохи. Новые сервисы могут запускаться на более свежем стеке, но старые продолжают жить на прежних версиях. И часто это не приводит к немедленной катастрофе: продакшен работает, инциденты не сыпятся каждую неделю, бизнес-процессы закрываются. Просто публично такие детали обычно не выносят. Или говорят о них очень осторожно. Отсюда появляется важный вопрос: если это распространённая практика, почему её так неудобно обсуждать? Почему факт использования старой версии фреймворка воспринимается почти как признание в инженерной неаккуратности? Попробуем разобрать это без морализаторства.

https://habr.com/ru/companies/axiomjdk/articles/1044766/

#spring #springboot #миграция #spring_boot_27 #обновление #jdk #java #legacy #легаси #безопасность

Почему многие остаются на Spring Boot 2.7 — и редко говорят об этом публично

Если ориентироваться только на публичные обсуждения, может сложиться впечатление, что большинство проектов уже давно перешло на Spring Boot 3.x. В крайнем случае команда прямо сейчас выполняет...

Хабр