Чашечка 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
Тема дня: 10 ключевых аннотаций Spring MVC и REST

Статья из Java67 рассказывает о самых полезных аннотациях Spring MVC и REST, таких как @Controller, @RequestMapping и @RestController. Эти аннотации облегчают создание Java веб-приложений и RESTful сервисов, помогая разработчикам эффективно управлять запросами и ответами. Аннотации Spring MVC: все, что нужно знать

Статья посвящена ключевым аннотациям в Spring MVC и REST, важным для разработчиков Java. Особое внимание уделяется @EnableAutoConfiguration и @ResponseStatus. Более подробно с аннотациями можно ознакомиться в книгах "Spring Boot in Action" и "Spring in Action". Полный гид по собеседованиям в мире Java

Javarevisited предлагает обширный список вопросов для подготовки к собеседованиям: от Spring Boot и Microservices до SQL и Java Collections. Ищете курсы по Spring Framework? Это тоже здесь. Подпишитесь и не пропустите новые обновления и скидки!

Подробности: http://www.java67.com/2019/04/top-10-spring-mvc-and-rest-annotations-examples-java.html

#en

@a_cup_of_java | Другие наши каналы
Что делать при ошибке "java.lang.OutOfMemoryError: unable to create new native thread"

Эта ошибка в Java возникает из-за превышения лимита на количество потоков в системе. Решение – увеличить лимит потоков с помощью команды ulimit в Linux или устранить утечку потоков в коде приложения. Учитесь избегать таких проблем при разработке Java-приложений. Разбираемся с потоками в Java: основные концепции

Статья рассматривает ключевые понятия работы с потоками в Java, такие как интерфейс Runnable, управляющие блоки synchronized, методы wait и sleep, а также особенности демонов и очередей. Узнайте больше о технических аспектах и применении потоков в разработке.

Подробности: http://www.java67.com/2016/10/javalangoutofmemoryerror-unable-to-create-new-native-thread-in-java-solution.html

#en

@a_cup_of_java | Другие наши каналы
👍1
Как исправить ошибку Unsupported major.minor version в Eclipse?

Столкнулись с ошибкой UnsupportedClassVersionError в Eclipse? Часто она возникает, когда код компилируется на более высокой версии JDK, чем используется для выполнения. Решение — обновить конфигурацию запуска на нужную версию JDK. Узнайте все детали в статье на Java67.

Подробности: http://www.java67.com/2018/01/eclipse-unsupported-major-minor-version-53-53-51-error-Java.html

#en

@a_cup_of_java | Другие наши каналы
Обзор новостей Java: Jakarta EE 11, Spring AI и обновления

В мире Java продолжаются значительные обновления: Jakarta EE 11 получил одобрение, первая бета-версия WildFly 36 принесла улучшения производительности, а Spring AI обновил свои стартовые артефакты. Следите за новинками, чтобы не упустить важное для разработчиков!

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

#en

@a_cup_of_java | Другие наши каналы
Что такое lsFusion: взгляд со стороны

Эта статья – небольшой обзор продуктов компании lsFusion и того предалагает пользователям компания lsFusion. Взялся я за него после того, как в статьях «Почему я не люблю 1С» и «Стоит ли идти в 1С программисты в 2025 году» упомянул эту систему как одну из возможных альтернатив 1С. На тот момент я только читал о том, что есть такая система как lsFusion на Хабре, из любопытства заходил на их сайт и просматривал в поиске дополнительную информацию. Тогда я ее упомянул только как «одну из систем» в перечне альтернатив, так как сами они явно позиционируют себя как учетная система.

Далее уже в комментариях я увидел большой тред, где сравнивали 1С и lsFusion. Мне стал интересен автор комментариев, оказалось, что это работник lsFusion. Я с ним связался, чтобы самому лучше понять, что же это за программный продукт. Получил ответы на многие собственные вопросы, изучил ближе саму систему. И теперь хочу поделиться тем, что узнал, чтобы помочь людям, которые находятся в поиске альтернативы 1С.


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

@a_cup_of_java | Другие наши каналы
1
Бэкенд — это тоже красиво: как метрики и мониторинг делают вашу работу заметной

Вадим Ваганов, руководитель разработки и Head of Profession Backend в Газпромбанке, рассказывает, почему важно визуализировать метрики и свою работу.

Читать: «Бэкенд — это тоже красиво: как метрики и мониторинг делают вашу работу заметной»

@a_cup_of_java | Другие наши каналы
🆒4👍3🤩1
Библиотека для кэширования Caffeine: анализ кода

То и дело, прожигая время за чтением reddit, я натыкаюсь на очередной пост, в котором упоминается метод S3 FIFO и упоминается, что он лучше LRU (вытеснение реже всего используемых значений) — потому, что даёт более низкий процент промахов кэша. Видные компании, в частности, RedPandas, Rising Wave и Cloudflare уже внедрили S3 FIFO у себя на различных мощностях, что только подогрело мой интерес к нему. Кэши — чертовски интересная тема, а по работе мне приходится сильно полагаться на работу с кэшами при обслуживании нескольких сервисов. Так что я был уверен, что рано или поздно мне потребуется протестировать S3 FIFO или, как минимум, удостовериться, что я понимаю ключевые идеи, заложенные в этой технологии.

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

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


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

@a_cup_of_java | Другие наши каналы
Ускорение Spring REST API на 200%

Spring Framework уже многие годы является базой, на которой разрабатывается подавляющее большинство серверных приложений на Java. Он предоставляет абстракции над множеством различных технологий, в том числе и абстракции для разработки REST API. Все эти абстракции имеют свою цену в плане производительности, и иногда эта цена является очень большой, если речь идёт о высоконагруженном приложении. В этой небольшой статье я покажу, как можно избавиться от ненужных накладных расходов и значительно увеличить производительность вашего API.


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

@a_cup_of_java | Другие наши каналы
Хранение 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 | Другие наши каналы