Java guru
744 subscribers
176 links
Новости из мира Java, обзоры интересных библиотек и фреймворков, обучающие статьи. Онлайн обсуждения актуальных тем и обмен опытом. Для связи @RodmanDV
Download Telegram
Class Data Sharing (CDS) в Spring 6.1.

Довольно интересная фича появилась начиная с Spring Framework 6.1. Class Data Sharing (CDS) позволяет сократить время старта приложения и потребляемую память за счет кеширования метаданных классов.

Технически можно кешировать метаданные и прикладных классов.

https://spring.io/blog/2023/12/04/cds-with-spring-framework-6-1/
String Templates in Java – why should you care?

Шаблоны строк это
preview feature, которая впервые была представлена в Java 21. Она существенно упростит конкантенацию строк, а также повысит безопасность.

В статье детально разбирается какие альтернативы у нас были до этой фичи и как она нам поможет в типовых кейсах.

https://blog.jetbrains.com/idea/2023/11/string-templates-in-java-why-should-you-care/
Virtual Threads for Lightweight Concurrency and Other JVM Enhancements

Статья Рона Пресслера, который является архитектором в
Oracle Java Platform Group, а также тех лидом проекта Loom в Oracle. По ссылке есть видео выступления, а ниже транскрипт для тех кто любит читать. Очень интересное выступление. Рекомендую посмотреть.

https://www.infoq.com/presentations/virtual-threads-lightweight-concurrency/
Project Loom. Не только виртуальные потоки

В статье мало «технического мяса», но она больше интересна комментариями под ней. Там идет дискуссия в которой сравнивают корутины Java и Kotlin.

В самой статье по факту рекламируется инструмент автора построенный вокруг непубличного API из JDK
jdk.internal.vm.Continuation


https://habr.com/ru/articles/785334/
11 reasons the new Java is not like the old Java

Хорошее овервью ключевых новых технологий без глубокого погружения в каждую.

Рассмотрены:

1 Virtual threads
2 Structured concurrency
3 Immutable data
4 Garbage collection
5 Pattern matching
6 Streamlined syntax
7 Sealed classes
8 Foreign functions and memory
9 The Vector API
10 Improved null processing

https://www.infoworld.com/article/3711866/11-reasons-the-new-java-is-not-like-the-old-java.html#tk.rss_java
Планы Oracle по улучшению Java на 2024 год

Рассказано о том какие улучшения запланированы в таких проектах OpenJDK как Amber, Babylon, Leyden, Lilliput, Loom, Panama, Valhalla и на сколько жизнь разработчика станет прекрасна.

https://inside.java/2024/01/18/newscast-61/
Oh My Git — интерактивная игра для изучения Git.

Она визуализирует внутреннюю структуру Git-репозиториев в режиме реального времени. Получается очень наглядно.

https://ohmygit.org
Как сократить потребление памяти в интеграционных тестах с Kafka с помощью GraalVM

Довольно интересный опыт описан в статье по созданию нативного образа для EmbeddedKafka с использованием GraalVM. В теории можно поэкспериментировать подобным образом и с другими продуктами.

https://habr.com/ru/articles/788812/
Туториал по нотификациям через RSocket: от концепции до запуска в продакшн

Статья про разработку системы нотификаций для Альфа-Онлайн — мобильного банка в вебе. В решении использовались WebSocket в связке с RSocket.

https://habr.com/ru/companies/alfa/articles/788398/
Машинное обучение для Java разработчиков: конвейеры данных машинного обучения

В статье описано как создать и развернуть модель данных машинного обучения в ПРОМ среде на базе Java с использованием Weka, Docker и REST.

Weka представляет собой набор современных алгоритмов машинного обучения и инструментов предварительной обработки данных.

https://www.infoworld.com/article/3454363/machine-learning-for-java-developers-machine-learning-data-pipelines.html#tk.rss_java
Разбираемся с «MavenGate», новой атакой на цепочку поставок для Java и Android-приложений

Ей подверженны более 18% всех Java-библиотек. Суть ее основана на логике работы сборщиков Java/Android-проектов и разрозненности репозиториев, которые хранят эти библиотеки.

https://habr.com/ru/companies/swordfish_security/articles/790544/
Как мы начали использовать виртуальные потоки Java 21 и на раз-два получили дедлок в TPC-C для PostgreSQL

В этом посте рассказано о примере дедлока в TPC-C для PostgreSQL, причиной которого является исключительно переход на виртуальные потоки - и никаких проблем обедающих философов ))

https://habr.com/ru/companies/ydb/articles/786550/
Как подружить нейросети и разработку: программируем с ChatGPT

Задача: создать простой REST-сервис на Java (с использованием Spring Boot и JPA) без написания кода.

Технологии: ChatGPT 3.5 + JAIG.

Итог: если бы автор статьи самостоятельно, вручную писал код, то по его оценке уложился примерно в один рабочий день. На работу с ChatGPT и JAIG у него ушло в общей сложности 10 дней 🤡

https://habr.com/ru/companies/ibs/articles/792032/
Maven плагин для проверки семантической схемы версионирования Java-библиотек.

Возможно вы тоже сталкивались с тем, что патч-версия якобы содержит обратно несовместимые изменения. Автор написал maven-плагин, который автоматически проверяет внесенные изменения и предлагает, какую часть номера версии нужно изменить.

https://foojay.io/today/semantic-versioning-your-java-libraries/
MyBatis «на минималках»

Я не фанат этого фреймворка, но для кругозора посмотреть можно. Исходя из статьи в CDEK он используется в большинстве проектов. Лично я давно не слышал о его использовании в ПРОМе.

https://habr.com/ru/companies/cdek_blog/articles/771714/
Project Valhalla: эпичный квест Java за перфомансом

Project Valhalla, задуманный еще в 2014, призван дать возможность создавать кастомные примитивные или "value" объекты. Эти объекты должны представлять собой плоскую структуру, подобно рассмотренному выше массиву int[], а не дерево "указателей".

В статье приводится довольно интересное сравнение.

https://habr.com/ru/articles/787166/
Игра Untrusted

Untrusted — это необычная образовательная игра. В данной игре игрокам предстоит управлять персонажем и разгадывать головоломки, применяя программирование и логическое мышление для прохождения уровней.

Почему я решил запостить здесь?!?!? Потому что по слухам там есть задачки на Java ))

Сам я пока эту игру не играл. В детстве помню подобную консольную играл. Прям ностальгия ))

https://www.playuntrusted.com
Java ScopedValue: Ускоренный ThreadLocal

В инкубаторе JEP-429 появилась новая альтернатива ThreadLocal под названием ScopedValue. Она предназначена для того, чтобы предоставить более легкую альтернативу ThreadLocal. ScopedValue сейчас в стадии превью в Java 20+ (включая последний релиз Java 21).

https://habr.com/ru/companies/otus/articles/787978/
Java Flight Recorder ожидает улучшения

В рамках проекта Skogsluft будут представлены продвинутые возможности профилирования Java приложений.

https://www.infoworld.com/article/3712811/java-flight-recorder-eyed-for-improvement.html#tk.rss_java
Применение ООП на практике

Чаще всего задачу можно решить интуитивно понятным процедурным способом. Однако самый простой вариант не всегда самый лучший. Предлагаю посмотреть на примере реальной задачи, как можно сделать решение объектно-ориентированным, и какую пользу это может принести.

https://habr.com/ru/companies/pvs-studio/articles/793900/