Чашечка 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
Хранение 1 ТБ в виртуальной памяти на компьютере с 64 ГБ памяти с использованием Chronicle Queue

Java разработчики часто сталкиваются с проблемой обработки очень больших наборов данных в рамках ограничений виртуальной машины Java (JVM). Когда размер кучи значительно увеличивается — часто более чем на 32 ГБ, — время паузы при сборке мусора (GC) может увеличиваться, что приводит к снижению производительности. В этой статье рассматривается, как Chronicle Queue обеспечивает хранение и эффективный доступ к набору данных размером 1 ТБ на компьютере с 64 ГБ оперативной памяти.


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

@a_cup_of_java | Другие наши каналы
👍1
3 вопроса на собеседование о многопоточности в Java

Привет, Хабр!

Сегодня рассмотрим несколько вопросов на собеседовании, которые могут встретиться: чем synchronized отличается от ReentrantLock, что такое happens-before и как оно влияет на volatile и final и почему ConcurrentHashMap.computeIfAbsent() не всегда безопасен?


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

@a_cup_of_java | Другие наши каналы
👍1
Лучшие практики создания отказоустойчивых систем

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

Особое внимание уделяется методам повышения надёжности при временных сбоях, включая: повторные попытки выполнения операций с экспоненциальной задержкой (exponential backoff), использование шаблона circuit breaker, механизмы плавной деградации функциональности (graceful degradation), задание таймаутов, реализация идемпотентности, ограничение одновременных вызовов (bulkhead isolation), а также внедрение систем мониторинга и алертинга. Приводимые примеры охватывают типовые сценарии — обращение к внешним API, взаимодействие с базами данных и выполнение фоновых задач.


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

@a_cup_of_java | Другие наши каналы
👍3
От Kotlin до кассовых чеков: как выглядит Java-разработка в SM Lab

Когда видишь компанию со стороны, одни вещи понимаешь, а другие остаются секретом. О том, что SM Lab отвечает за IT-решения в группе компаний «Спортмастер», можно догадаться уже по названию и логотипу. Но, например, сколько разработчиков заняты этими решениями? Какие именно у них проекты? Это куда менее очевидно.

Мы проводим конференции по разным IT-направлениям, на них неоднократно выступали спикеры из SM Lab, и некоторые вещи можно понять по их докладам. Например, на Mobius рассказывали про «Генерацию этикеток для термопринтеров на основе языка разметки ZPL», а на Heisenbug помогали другим с «Первыми шагами в нагрузке».

А на этой неделе SM Lab примет участие в нашей Java-конференции JPoint, и я решил, что сейчас самое время задать вопросы о Java-разработке сотрудникам самой компании. Публикую результат, в котором соединены вместе ответы нескольких разных людей.


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

@a_cup_of_java | Другие наши каналы
2
Code-Level Observability: Глубокая видимость на уровне кода против традиционных APM и преимущества BitDive

Современные приложения и распределённые системы стали невероятно сложными, а традиционные инструменты мониторинга зачастую не справляются с выявлением скрытых проблем. Code-Level Observability предлагает новый подход, позволяющий получить детальное представление о работе приложения непосредственно на уровне исходного кода. В этой статье мы рассмотрим, почему глубокая видимость кода становится необходимостью, какие проблемы имеют популярные APM-системы, и как система BitDive превосходит традиционные решения.


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

@a_cup_of_java | Другие наши каналы
Статья. Как я добился гибкости в приложении и причем тут ссылки на методы?

Всем привет! Меня зовут Макс, и уже 14 лет как я вошел в ИТ и пока не планирую отсюда выходить. Последние 7 лет я не только сам пишу код, но и занимаюсь "выпасом котов". К написанию статьи меня побудила моя любовь к ссылкам на методы и желание поделится "кастомными" способами их использовать вне базовых классов java. Если вы задумывались об усилении гибкости приложения и преимуществах AOP, но вас отпугивают его недостатки, в статье предлагаю рассмотреть вариант получения тех же (ну или почти тех же преимуществ), но без раздражающих (по крайней мере меня) недостатков. Для использования идей из статьи не требуется каких-то особых магических знаний, достаточно знать, что такое функциональный интерфейс.


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

@a_cup_of_java | Другие наши каналы
Оптимистичная блокировка в Hibernate если у вас DDD (и не только)

Привет, хабр!

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

Проблема:

Думаю, многим известно что, в целом, реализация оптимистичной блокировки в Hibernate проще некуда - всё что нужно сделать это добавить поле version с аннотацией @Version в вашу энтити. Bот так:


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

@a_cup_of_java | Другие наши каналы
❤‍🔥2
Статический анализ кода для Spring: выполните анализ, исправьте критические ошибки и отправляйтесь на пляж

Почему статический анализ кода для Spring так важен? 72% наших пользователей JVM используют Spring в своих приложениях, особенно в таких отраслях, как производство и финансы. Почему? Spring делает программирование на Java и Kotlin более быстрым, простым и безопасным для всех, но при этом возникают уникальные проблемы.


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

@a_cup_of_java | Другие наши каналы
JavaOne 2025: Программирование без JNI

На конференции JavaOne 2025 Пеер-Оке Минборг из Oracle представил новый API для работы с функциями и памятью на чистой Java. Новая технология, замещающая JNI, решает проблемы производительности и поддержки, упрощая доступ к нативному коду и памяти. Это важный шаг к полной интероперабельности Java. 🔒 Как защитить свою приватность онлайн?

Угрозы конфиденциальности в интернете продолжают расти. Чтобы защититься, рекомендуется использовать VPN, сильные пароли, двуфакторную аутентификацию и следить за безопасностью приложений. Будьте бдительны и ограничьте доступ к личной информации.

Подробности: https://www.infoq.com/news/2025/04/foreign-function-minborg/

#en

@a_cup_of_java | Другие наши каналы
Как разработчику найти работу в IT: гайд к вашему первому офферу

Поиск работы в IT — это как приключение с кучей загадок и испытаний. Ты можешь застрять на этапе «где взять опыт, если без опыта не берут?» или ломать голову, почему резюме снова улетело в мусорку. И я сам, и мои менти прошли этот тернистый путь, начиная с пары корявых сайтов и telegram ботов, которые стыдно было показывать, доходя до офферов, которые казались недосягаемыми. И знаешь что? Это не миф, а вполне реальная цель, если у тебя есть план и немного упорства. В этой статье я поделюсь планом, который помог и мне, и моим менти, добавлю личные истории и инсайты, чтобы ты приблизился к своему офферу.


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

@a_cup_of_java | Другие наши каналы
Не только React: сравнительный анализ React и Jmix для написания UI бизнес-приложений

Раньше, когда трава была зеленей, а доллар стоил 30, в мире enterprise-разработки преимущественно использовались десктопные приложения. Если вспомнить, как выглядели пользовательские интерфейсы в то время, то перед глазами возникает грустная и серая картина из кучи таблиц, кнопок, форм и бесконечно открывающихся экранов поверх других экранов. Также не забудем про тот факт, что бизнес довольно сдержанно относится к любым изменениям, особенно если они требуют дополнительных трат. Из всего этого можно сделать вывод, что красивого UI бизнес-приложений не могло существовать в то время. Однако современные фреймворки, такие как React, позволяют довольно быстро построить красивый и функциональный интерфейс. Но React'ом ли единым? Есть ли другие инструменты для эффективного написания бизнес-приложений?

VK Cloud — облачная платформа, объединяющая современные технологии для разработчиков и бизнеса, нацеленных на эффективное внедрение инновационных решений. В сотрудничестве с партнерами, такими как JMIX, мы стремимся делиться практическим опытом, который помогает компаниям ускорять процесс разработки и оптимизировать затраты на сопровождение приложений. В этой статье мы представляем материал, подготовленный экспертами JMIX и посвященный подходам и лучшим практикам разработки приложений.


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

@a_cup_of_java | Другие наши каналы
👍2
Настройка односторонней аутентификации (One-Way SSL) для kafka

Часто при разработке небходимо иметь на локальной машине сервер kafka с ssl аутентификацией.
Надеюсь эта статья поможет быстро поднять его и приступить к разработке.


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

@a_cup_of_java | Другие наши каналы
Обратная сторона фреймворков

Что станет с вашим замечательным проектом в перспективе, если построить его на чужих технологиях? Многие подозревают, некоторые догадываются а я рассказываю. Из первых рук и на личном опыте.


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

@a_cup_of_java | Другие наши каналы
Как получить оффер в IT: разбор ключевых ошибок и эффективных стратегий

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


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

@a_cup_of_java | Другие наши каналы
📰 Новости Java: Jakarta EE 11 и удаление Applet API

Эта неделя принесла важные обновления в мире Java! Совсем недавно был выпущен Jakarta EE 11 Web Profile. Также представили одиннадцатую версию GlassFish 8.0.0 и кандидата на удаление устаревшего Applet API. Ознакомьтесь с последними новостями и оставайтесь в курсе!

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

#en

@a_cup_of_java | Другие наши каналы
Не сказ, а быль: Java-дев среди сисадминов

Долго ли, коротко ли, служил я java-разработчиком, да судьба-злодейка, крутанула меня в Platform Engineer’ы. Овладел я ремеслом devops’ским да сисадминским, но по ночам снится мне low-level Java, но быль моя совсем чуть-чуть об этом будет - поглаголю о JVM опциях, дабы приложение в k8s без дури запускать. Расскажу, как доблестно (а может, и безрассудно) SeaweedFS S3 storage выбирал, как кластер k8s поднимал, не щадя живота своего. Читай сии записки, запивая иван-чаем или медовухой: авось, умная мысль глянет меж строк. Не глянет — так хоть посмеёшься над моим devops экспириенсом.
Развернуть сказы

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

@a_cup_of_java | Другие наши каналы
🔥4
Hibernate, JPA, N+1 и лишние запросы в БД

Введение

В начале статьи, хотел бы отметить, что если вы только начинаете изучать проблему N+1, возможно вам стоит отложить чтение данной статьи или учитывать, что она рассматривает эту проблему не как изолированный факт, а как часть процессов приводящих к замедлению производительности приложения. Последующие тезисы и аргументы, могут сместить фокус с общих аспектов проблемы N+1, на частные и нехарактерные, такие которые затруднят общее понимание проблемы. Также в этой статье только косвенно затрагиваются способы решения этой проблемы. В основном, эта статья оценивает и выявляет причины, которые приводят к лишним запросам в БД.


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

@a_cup_of_java | Другие наши каналы
👍6❤‍🔥2
Как бросить исключение без throws в Java: технический разбор с примерами

В Java существует старое, но всё ещё актуальное ограничение: если метод бросает checked-исключение (например, IOException), он обязан явно объявить это с помощью throws. Это требование — не от JVM, а от компилятора. Компилятор жёстко следит за декларациями, но вот JVM — нет. Что создаёт любопытную лазейку: обойти компилятор, оставаясь при этом в рамках спецификации JVM.

Сегодня разберёмся, как это сделать с помощью Unsafe.throwException(), почему это вообще работает, где это может пригодиться, и на что стоит обратить внимание при использовании Java 17, 21 и 24.


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

@a_cup_of_java | Другие наши каналы
Java Digest #23

Всем привет! 👋👋👋👋👋 Мы Java-разработчики Т-Банка: Андрей, Арсений, Константин, Константин и Роман. Собираем интересные новости, статьи, туториалы и другие материалы из мира Java-разработки и делимся этим со всем сообществом.

В этом выпуске будет много релизов, один из них — новый майлстоун Spring 7.0.0, а еще — новые версии Quarkus и Kora. Снова узнаем, как сделать Spring быстрее, вспомним старые хорошие доклады в новом формате и посмотрим на фичи Java 24 на примере крестиков-ноликов.


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

@a_cup_of_java | Другие наши каналы
👍2
Компилируем компилятор или ускоряем javac вдвое

Ну блин короче :)

Знаете ли вы, куда уходит время и ресурсы при сборке проектов на Java? Сейчас покажем и расскажем, как сберечь время, нервы и кофе.

Мы ускорили javac вдвое и теперь можно экономить на сборке.


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

@a_cup_of_java | Другие наши каналы
Какие есть паттерны в React и для чего они нужны: часть 1

В этой части Юсуп Изрипов рассказывает, что такое Container & Presentational Components, Higher-Order Component (HOC) и паттерн Render Props в React и что с ними делать.

Читать: «Какие есть паттерны в React и для чего они нужны: часть 1»

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