devmark_ru
226 subscribers
157 photos
121 links
Данный канал является частью проекта devmark.ru, который посвящён вопросам разработки программного обеспечения. Здесь вы найдёте полезные материалы по server-side разработке. Прежде всего по Java, Kotlin и Spring.
Download Telegram
На моём YouTube-канале в комментах под видео про итераторы пользователь karakurty попросил меня рассказать также про ConcurrentModificationException в контексте данной темы.

Поэтому в статью я добавил новый раздел о том, как менять ту же коллекцию, по которой производим перебор элементов.

P.S. Мне на самом деле очень приятно, когда аудитория моего канала предлагает различные улучшения и дополнения к тому материалу, который я публикую. В своё время так уже было с видео про поиск простых чисел, когда предложенный зрителем альтернативный алгоритм оказался гораздо более быстрым, чем рассмотренная мною реализация. И это в итоге привело даже к созданию отдельной статьи.
👍5
Релиз Spring Boot 4!

На прошлой неделе вышел Spring 7 и почти сразу после этого на днях в Spring Initializr стал доступен Spring Boot 4. Пора обновляться, господа!

Напомню, что одной из интересных фишек является версионирование rest-запросов. То, что раньше все делали самостоятельно через сегменты урла или через заголовки, теперь работает из коробки.

Если вы будете генерить проект на Java, то есть возможно подключить Java 25. Если же вы пишете на Kotlin - то почему-то даже при выборе Java 25, в проекте будет указана Java 24. Однако при этом наконец-то подключается не Kotlin 1.9, а Kotlin 2.2:

plugins {
kotlin("jvm") version "2.2.21"
kotlin("plugin.spring") version "2.2.21"
id("org.springframework.boot") version "4.0.0"
id("io.spring.dependency-management") version "1.1.7"
}


#spring #java
👍4🔥2👌2
Ускоряем Spring-сервис одной настройкой

На недавно прошедшем митапе от Мир.Platform был интересный доклад про виртуальные потоки в Java и Spring.

Запись трансляции с митапа.

Если вкратце, то достаточно в конфиге выставить один параметр, и приложение, написанное на Spring и Tomcat, начинает работать так же шустро, как и неблокирующий WebFlux/Netty (даже чуть быстрее). При этом вообще никак не надо модифицировать обычный, "синхронный" код.

Вот что надо прописать в application.properties:

spring.threads.virtual.enabled=true


Минимальные требования: Java 21 и Spring Boot 3.2. Но ещё лучше это будет работать на новом Spring Boot 4 и Java 25.

#spring #java
👍6🔥3
Qwen Code CLI: разработка restful-сервиса на Java и Spring - новое видео

➡️ YouTube | RuTube | VK Видео

В этом видео вы узнаете как можно разрабатывать современные приложения на Java и Spring с помощью консольного агента Qwen Code. Также я покажу как подключить к Qwen Code MCP-сервер OpenIDE (или IntelliJ IDEA). И ещё мы рассмотрим как плагин Amplicode улучшает и ускоряет работу Qwen Code за счёт дополнительных MCP-методов.

Если вдруг захотите купить подписку на Amplicode PRO, то вот вам промокод на скидку: devmark_ru_2026

#qwen #spring #java #openide #amplicode #ai #mcp
👍4❤2🔥2
🚀 Вышла Java 26 (JDK 26)

👉 Полный список изменений:
https://jdk.java.net/26/release-notes

Релиз получился компактным — всего около 10 JEP, но с упором на производительность, безопасность и «чистку» платформы

JEP 517 — HTTP/3 в HttpClient
В стандартный HTTP-клиент добавили поддержку HTTP/3. Это даёт меньшую задержку и лучшее поведение в нестабильных сетях, при этом остаётся fallback на HTTP/2.

JEP 500 — “final значит final”
Java начинает запрещать изменение final полей через reflection. Пока это предупреждения, но дальше будет жёсткое ограничение — важный шаг к безопасности и оптимизациям JVM.

JEP 516 — AOT-кэш для любого GC
Ahead-of-Time кэш теперь работает независимо от сборщика мусора, включая ZGC. Это упрощает использование и ускоряет старт приложений за счёт повторного использования подготовленного состояния.

JEP 522 — ускорение G1 GC
Сделали так, чтобы внутри G1 было меньше блокировок между потоками. За счёт этого потоки реже мешают друг другу, и приложение в целом работает быстрее, особенно под высокой нагрузкой.

JEP 504 — удаление Applet API
Applet API окончательно удалён после долгого процесса отказа от него. Это очередной шаг по избавлению от legacy и упрощению платформы.

Preview / incubator (движение платформы вперёд)
Structured Concurrency (JEP 525), Lazy Constants (JEP 526), Vector API (JEP 529) и primitive patterns (JEP 530) продолжают эволюцию языка и JVM. Это пока не production-фичи, но они задают направление развития Java.

А что вас порадовало больше всего в новом релизе?

#java #jdk #release
👍4🔥4