Чашечка 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
Топ-40 задач по бинарным деревьям для подготовки к интервью. В статье собраны популярные вопросы с решениями на Java, которые помогут укрепить знания о бинарных деревьях и алгоритмах работы с ними. Отличный материал для программистов, готовящихся к собеседованиям. Бесплатный курс по структурам данных и алгоритмам от инженера Google доступен на Udemy. Курс поможет улучшить знания и подготовиться к интервью, охватывая важные темы и практические задания. Отличный ресурс для разработчиков любого уровня. Как найти и вывести листовые узлы бинарного дерева на Java

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

Подробности: http://www.java67.com/2020/02/top-40-binary-tree-interview-questions.html

#en

@a_cup_of_java | Другие наши каналы
2
Forwarded from Код найма
Хватит искать работу в одиночку!

Ты крутой айтишник, но поиск работы превращается в квест: бесконечные резюме, где важны не навыки, а кейворды, десятки собеседований и постоянный стресс. Знакомо? Всё это выматывает и демотивирует. Мы тебя понимаем — и готовы поддержать!

Команда Tproger открывает первое реалити-шоу в Телеграм о поиске работы — «Код найма».

Вместе с опытными менторами ты пройдешь все этапы найма:

➡️ Прокачаешь резюме так, чтобы его заметили
➡️ Научишься проходить собеседования без волнения
➡️ Получишь честную обратную связь от рекрутеров
➡️ И, главное, дойдёшь до оффера в компании мечты!

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

Хочешь стать героем нашего реалити и получить шанс найти работу мечты?

✍️ Заполняй анкету

Мы выберем трёх участников, которым поможем пройти весь путь до оффера.

Присоединяйся к «Коду найма» — и пусть твой следующий оффер станет началом новой жизни!
Please open Telegram to view this post
VIEW IN TELEGRAM
Конечные автоматы (FSM) Просто о сложном

Что такое конечный автомат (FSM) и зачем он нужен программисту? Эта статья простыми словами объясняет концепцию FSM, его компоненты, преимущества и реализацию на JavaScript с примерами. Разберём логику состояний, событий и переходов без сложной теории.

Читать: «Конечные автоматы (FSM) Просто о сложном»

@a_cup_of_java | Другие наши каналы
Мониторинг «здесь и сейчас»: используем потоки событий 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 | Другие наши каналы