Чашечка Java
8.57K subscribers
3.88K photos
13 videos
56 files
6.33K links
Лучшие материалы по Java на русском и английском

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels
Download Telegram
Мониторинг «здесь и сейчас»: используем потоки событий JDK Flight Recorder

JDK Flight Recorder (JFR) — это диагностическая подсистема, встроенная в JVM. В основе JFR лежит очень простая идея, но вокруг нее выросла разнообразная экосистема решений, позволяющих решать широкий спектр задач.
В данной статье я хочу сфокусироваться на одном аспекте технологии JFR — потоковой обработке событий. Потоковая обработка появилась в JDK 14 в виде Flight Recorder Event Streaming API и позволяет прикладному коду обрабатывать события JFR с минимальной задержкой.


Читать: https://habr.com/ru/companies/axiomjdk/articles/917766/?utm_campaign=917766

@a_cup_of_java | Другие наши каналы
Новое в мире Java: шестой milestone Spring Framework 7.0, свежий релиз Payara Platform июня 2025, обновления Jakarta EE 11 перед релизом GA и переименование Apache Fury в Apache Fory. Подробности о ключевых апдейтах JDK, Micronaut и других платформах.

Подробности: https://www.infoq.com/news/2025/06/java-news-roundup-jun09-2025/

#en

@a_cup_of_java | Другие наши каналы
Используйте Camunda как удобный REST-движок для оркестрации и workflow — без необходимости работать с Java

Я много общаюсь о микросервисных архитектурах с «не-Java-людьми» — будь то разработчики на C#, энтузиасты Node.JS/JavaScript или GoLang. Все они сталкиваются с необходимостью оркестрации в микросервисной архитектуре — или просто хотят использовать workflow, упорядочивание действий, обработку таймаутов, Saga и компенсации, а также другие полезные возможности.

Open Source BPM-платформа Camunda отлично подходит для этих задач. Ориентированность на разработчиков — один из ключевых принципов продукта, но при изучении документации может показаться, что она рассчитана в основном на Java-разработчиков. Платформа предоставляет множество точек расширения и интеграции, но всё это реализуется на Java. Значит ли это, что другим разработчикам путь закрыт?

Нет! На самом деле, запустить Camunda и работать с ней без знания Java очень просто — архитектуру можно выстроить так, чтобы писать код на любом удобном языке. В этом посте:


Читать: https://habr.com/ru/articles/915858/?utm_campaign=915858

@a_cup_of_java | Другие наши каналы
3
ScyllaDB: как настраивать метрики в java-драйвере и параметры запросов для измерения их характеристик

Привет, Хабр! Это Александр Коваль, я разработчик IoT-сервисов в МТС Web Services. При работе с данными часто возникает вопрос: как быстро система может вернуть результат по определенным параметрам? Не является исключением и ScyllaDB.

Для ответа нужны инструменты измерения и возможность настраивать систему. Java-драйвер для ScyllaDB умеет передавать информацию о своей внутренней работе, и ему можно настроить отдельные компоненты. Звучит как отличный план — в этом материале я поделюсь результатами экспериментов с java-драйвером для ScyllaDB при различных запросах к данным.

Код, ссылки и ресурсы располагаются в GitHub.


Читать: https://habr.com/ru/companies/ru_mts/articles/916684/?utm_campaign=916684

@a_cup_of_java | Другие наши каналы
2👍1
Java 25 интегрировал компактные заголовки объектов по JEP 519, что уменьшает размер заголовка с 12 до 8 байт. Это снижает нагрузку на CPU до 30% и улучшает работу с памятью без изменения кода, ускоряя приложения и снижая затраты.

Подробности: https://www.infoq.com/news/2025/06/java-25-compact-object-headers/

#en

@a_cup_of_java | Другие наши каналы
👍61
Данные важнее объектов: что такое Data-Oriented Programming

Статья рассказывает о Data-Oriented Programming — подходе, который фокусируется на эффективном хранении и обработке данных для максимальной производительности. Это особенно полезно в играх и торговле, где скорость и оптимизация критичны.

Подробности: https://www.infoq.com/articles/data-oriented-programming/

#en

@a_cup_of_java | Другие наши каналы
1
Почему Exceptions в Java не взлетели — и что с этим делать в 2025 году

Всем привет!

Меня зовут Илья, я работаю в Райффайзен Банке. Мы пишем свои бэкенд-сервисы на Java и Kotlin, поэтому зачастую приходится переключаться с одного языка на другой. Из-за этого невольно начинаешь сравнивать подходы и механизмы одного языка с его JVM-собратом. Сегодня я бы хотел поговорить об одном из таких механизмов — пропагации ошибок и исключений.

Используете ли вы в своем коде исключения? Ответ кажется странным, так как исключения являются неотъемлемой частью Java. Но что, если я спрошу, используете ли вы исключения для управления логикой своей программы?


Читать: https://habr.com/ru/companies/raiffeisenbank/articles/919152/?utm_campaign=919152

@a_cup_of_java | Другие наши каналы
👎6🔥2
Создание плагина для Keycloak: Загрузка пользователей из внешнего API

Если вы работаете с Keycloak и сталкивались с необходимостью интеграции внешних пользовательских данных — этот материал для вас.

В данной статье я подробно описываю процесс создания плагина на Java для Keycloak. Мы будем рассматривать все этапы разработки, начиная с основ и заканчивая примерами кода и объяснениями каждого шага.

Этот плагин позволяет подключить вашу собственную базу данных через внешний API-сервис. Это дает возможность использовать необходимые данные для вашего проекта без необходимости переписывать часть приложения или вручную переносить информацию из одной системы в другую.


Читать: https://habr.com/ru/articles/919230/?utm_campaign=919230

@a_cup_of_java | Другие наши каналы
4👍1
Фильтрация предупреждений PVS-Studio, выявляющих критические ошибки (согласно классификации ГОСТ Р 71207-2024)

ГОСТ Р 71207-2024 "Статический анализ кода" выделят класс дефектов в коде, называемых критическими ошибками. При разработке безопасного программного обеспечения (РБПО) такие дефекты должны в обязательном порядке выявляться и исправляться в приоритетном режиме. Статический анализатор PVS-Studio разрабатывается с учётом этого стандарта и позволяет выявлять все типы критических ошибок в коде программ, написанных на языках C, C++, C#, Java. Рассмотрим эти типы предупреждений и как их можно выделить среди других предупреждений, выдаваемых анализатором.


Читать: https://habr.com/ru/companies/pvs-studio/articles/919456/?utm_campaign=919456

@a_cup_of_java | Другие наши каналы
🌭3
WaveManager: Реализуем систему управления волнами врагов в Unity

Реализация системы управления волнами для создания захватывающих столкновений с противниками — это достаточно эффективный способ постепенно увеличивать сложность, поддерживая вовлеченность игроков. В этом руководстве я поделюсь с вами своим опытом реализации WaveManager'а в Unity, включая создание скриптов, генерацию врагов и интеграцию пользовательского интерфейса.


Читать: https://habr.com/ru/companies/otus/articles/919928/?utm_campaign=919928

@a_cup_of_java | Другие наши каналы
Трудности обслуживания приложений под Android

Недавно наткнулся на новость о том, что количество приложений в Google Play Store сократилось на 47%.

Я сам энтузиаст разработки под Android и последние 5 лет работал над альтернативой для Google Play Music и Podcast под названием MusicSync. Так что, будучи близким к теме человеком, мне захотелось поделиться своим опытом обслуживания приложений и заодно пояснить, почему меня эта новость нисколько не удивила.

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

Если же говорить о приложении Android, то обслуживать его в качестве хобби-проекта гораздо хлопотнее. Вот некоторые из проблем, с которыми мне приходилось сталкиваться.


Читать: https://habr.com/ru/companies/ruvds/articles/919434/?utm_campaign=919434

@a_cup_of_java | Другие наши каналы
Как написать микробенчмарк

Команда Spring АйО перевела статью, в которой приведено несколько правил, которые следует учитывать при написании микробенчмарков для HotSpot JVM.


Читать: https://habr.com/ru/companies/spring_aio/articles/920146/?utm_campaign=920146

@a_cup_of_java | Другие наши каналы
Эпизод 1: «Скобка, паб и виски с валидацией»

KafkaRail гудел на фоне.

Паб The Broken Tag, где начиналось утро героев, только просыпался — запах старого эля, крошки лог‑файлов, и бильярдный стол под тусклым светом прожектора. Через узел маршрута /corp/news метропоезд пронёсся, как push‑уведомление на рассвете. День в Киберляндии начинался.

JSON откинул капюшон куртки BitStone Protocol с QR‑патчем на рукаве, кивнул Mr. Parseley и заказал, как обычно, Schema Fresca. Он прошёл к бильярдному столу английского пула, стоявшему под старым плакатом «Keep Calm and Close Tags», где RAMmy спорил с TryCatch о синтаксисе ударов.


Читать: https://habr.com/ru/articles/920316/?utm_campaign=920316

@a_cup_of_java | Другие наши каналы
1
История Java: развитие, изучение Марса, битва с Microsoft, Spring, Gradle и Maven, IntelliJ IDEA и Eclipse

От появления до покорения Красной планеты. В этой статье — история языка Java: от первых шагов и битвы с Microsoft до инструментов, без которых не обходится ни один Java разработчик. И да, вы узнаете, при чём здесь дуб, кофе и остров.


Читать: https://habr.com/ru/companies/pvs-studio/articles/920360/?utm_campaign=920360

@a_cup_of_java | Другие наши каналы
Docker выпустил новые усиленные базовые образы, которые снижают уязвимости до 95%. Эти минималистичные образы с автоматическим обновлением обеспечивают безопасность контейнеров и совместимы с популярными базовыми образами, упрощая их интеграцию в существующие проекты.

Подробности: https://www.infoq.com/news/2025/06/docker-hardened-images/

#en

@a_cup_of_java | Другие наши каналы
Пишем 3D-игру весом в 600Кб… Ч. 1

...которая работает на первом Android-смартфоне в мире, ретро-компьютерах из 90-х и даже Mac'ах!

Иногда у меня лежит душа просто взять и написать какую-нибудь небольшую игрушку с нуля, без использования готовых движков. В процессе разработки я ставлю перед собой интересные задачки: игра должна весить как можно меньше, работать на как можно большем числе платформ и использовать нетипичный для меня архитектурный паттерн. Недавно я написал трёхмерные «танчики», которые весят всего лишь 600 килобайт и в рамках подробной статьи готов рассказать о всех деталях разработки трёхмерной игры с нуля в 2025 году. Если вам интересно узнать, как работают небольшие 3D-демки «под капотом» от написания фреймворка до разработки геймплея — жду вас под катом!


Читать: https://habr.com/ru/companies/timeweb/articles/918270/?utm_campaign=918270

@a_cup_of_java | Другие наши каналы
65050d76-cd8c-412e-9661-3e2d87da3ae3.gif
2.7 KB
Основы работы с массивами в Java

Статья подробно объясняет, как создавать и обрабатывать массивы в Java, включая сортировку, сравнение и преобразование в другие структуры данных. Практические примеры помогут как новичкам, так и опытным разработчикам освежить знания.

Подробности: http://www.java67.com/2018/02/10-examples-of-array-in-java-tutorial.html

#en

@a_cup_of_java | Другие наши каналы
Как найти k-й элемент с конца в связном списке на Java?

В статье описан эффективный способ решения задачи за один проход с помощью двух указателей — медленного и быстрого. Этот метод позволяет быстро находить нужный элемент без повторного обхода списка. Как работает условие в цикле for?

В статье рассматривается смысл и особенности условия в цикле for, объясняется, как оно влияет на выполнение цикла и почему важно правильно его использовать для оптимизации кода. Это полезно для начинающих и опытных программистов. Полезные приёмы работы с массивами и структурами данных в Java

В статье рассмотрены основные методы работы с массивами и структурами данных на Java: сортировка, поиск, удаление элементов, а также реализация алгоритмов сортировки и обхода деревьев. Полезно для новичков и опытных разработчиков.

Подробности: http://www.java67.com/2020/04/how-to-find-kth-node-from-end-in-linked-list-java.html

#en

@a_cup_of_java | Другие наши каналы
Что такое рекурсия и как её использовать в JavaScript
Рекурсия — это техника, когда функция вызывает сама себя для решения задачи. В статье объясняют основы с примерами: от простой функции до вычисления факториала с контролем завершения, чтобы избежать бесконечного цикла. Что нового в мире Java?
Статья содержит обширный список тем — от основ Java и коллекций до современных подходов, таких как функциональное программирование и многопоточность. Полезный ресурс для подготовки к интервью и освоения ключевых технологий. Архив публикаций на блоге Soma Sharma

В архиве блога Soma Sharma собраны записи с 2012 по 2021 год, включая материалы за разные месяцы и годы. Представлена возможность подписки на новые публикации по электронной почте.

Подробности: http://www.java67.com/2021/11/how-to-use-recursion-in-javascript.html

#en

@a_cup_of_java | Другие наши каналы
10 непривычных моментов в Go для Java разработчика

Несколько лет назад я начал добавлять Go в свой арсенал языков (будучи на тот момент Java разработчиком). Мне было очень непривычно. Более того, я принял язык не с первой попытки. Причём пришлось принять его больше из-за сложившихся обстоятельств, чем по собственному желанию.

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

Уточню: статья ориентирована больше на тех, кто планирует перейти в Go, чем для опытных разработчиков.


Читать: https://habr.com/ru/articles/920562/?utm_campaign=920562

@a_cup_of_java | Другие наши каналы
😭2💊1
Вышел первый milestone Spring Vault 4.0 с поддержкой Spring Framework 7 и улучшенной безопасностью. Обновления получили Spring Boot, Security, Authorization Server и другие проекты. 30 июня 2025 завершится поддержка ряда релизов Spring OSS. Подробнее в релиз-ноутах.

Подробности: https://www.infoq.com/news/2025/06/spring-news-roundup-jun16-2025/

#en

@a_cup_of_java | Другие наши каналы