Java Developer
16.2K subscribers
1.56K photos
111 videos
2 files
1.7K links
Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

Сотрудничество: @bape_ads
Прайс: @bape_media

РКН: https://clck.ru/3GHfTK

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
👩‍💻 MapStruct

MapStruct — генератор кода для маппинга между Java-классами (например, DTO и Entity).

Вместо ручного написания конвертеров вы описываете интерфейс, а реализация создаётся автоматически на этапе компиляции.

Зависимость Maven:
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.5.5.Final</version>
</dependency>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.5.5.Final</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>


Ускоряет разработку, избавляя от шаблонного и часто ошибочного кода при преобразовании объектов.

📱 Ссылка на GitHub
📁 Документация

tags: #полезное

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍6🔥5
Please open Telegram to view this post
VIEW IN TELEGRAM
😁31🤣12👀4
Что выведет код сверху?
Anonymous Quiz
12%
false true
17%
true false
39%
false false
32%
Ошибка компиляции
🔥64😁1
👩‍💻 Обработка исключений в функциональном стиле

В статье рассматривается библиотека Try<T>, созданная автором для элегантной работы с исключениями без явного try/catch, в духе функционального программирования.

Автор показывает, как интегрировать Try с Optional, Stream, цепочками recover и управлением ресурсами, чтобы писать чище и лаконичнее.

Читать статью

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4🔥1
А ведь действительно...

📱 Java Developer | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣275😁5
Вопрос с собеседования

Каково худшее время работы метода contains() для элемента, который есть в ArrayList?

Ответ: O(N). Время поиска элемента линейно пропорционально количеству элементов в списке.

tags: #собеседование

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍154
👩‍💻 Введение в многопоточность в Java

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

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

📱 Смотреть на YouTube

tags: #полезное

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥4👍3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁226🔥2
Вопрос с собеседования

Нужно ли переопределять другие методы при переопределении equals()?

Ответ: Да, при переопределении equals() в Java необходимо также переопределить метод hashCode(). Это требование следует из контракта: если два объекта равны по equals(), они должны возвращать одинаковые значения hashCode(). Нарушение этого правила приводит к некорректной работе коллекций, основанных на хэшировании, таких как HashMap, HashSet и Hashtable.

tags: #собеседование

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍157🔥1😁1
👩‍💻 Spring Data JPA и Hibernate: ориентируемся на производительность. Часть 3

В статье объясняется, как не потерять достигнутую производительность при работе со Spring Data JPA и Hibernate в команде.

Автор показывает, когда ентити становятся обузой и как перейти на проекции, чтобы читать только нужные данные.

Читать статью

🔖 Предыдущая часть — КЛИК


tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥3
Вопрос с собеседования

Как устроена архитектура брокеров в Kafka?

Ответ: В Kafka каждая партиция топика имеет лидера — брокера, который обрабатывает все запросы на запись и (по умолчанию) чтение. Остальные брокеры, содержащие копии этой партиции, называются фолловерами. Все реплики партиции (включая лидера) формируют группу ISR (in-sync replicas).

Данные всегда пишутся в лидера, который затем асинхронно реплицирует их фолловерам. Если лидер выходит из строя, Kafka автоматически выбирает нового из числа ISR. Это обеспечивает отказоустойчивость, хотя при смене лидера возможна кратковременная задержка в обслуживании.


tags: #собеседование

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍6🤯3
JUnit_Cheat_Sheet.pdf
71.4 KB
👩‍💻 JUnit Cheat Sheet

Эта короткая шпаргалка по JUnit поможет быстро вспомнить, как писать юнит-тесты на Java с использованием аннотаций и ассертов.

Внутри:
▶️ Создание тестов и настройка с @Test, @BeforeEach, @Timeout

▶️ Основные ассерты: assertTrue, assertFalse, assertEquals, assertThrows

▶️ Работа со списками, null-значениями и исключениями

▶️ Пример тестирования ArrayList с реальными кейсами

▶️ Синтаксис и структура JUnit 5 (Jupiter)


tags: #шпаргалка

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍143
Please open Telegram to view this post
VIEW IN TELEGRAM
😁244🤯4🤔3💯3
🤣5
Что выведет код сверху?
Anonymous Quiz
21%
5
1%
7
31%
35
47%
Ошибка компиляции
🤣842
👩‍💻 Лучшие практики создания отказоустойчивых систем

В статье собраны основные техники, которые помогают серверным приложениям продолжать работу даже при сбоях — от ретраев и таймаутов до graceful degradation и circuit breaker.

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

Читать статью

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Так вот в чём дело...

📱 Java Developer | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁33🤯52
Вопрос с собеседования

Как управлять кешированием в HTTP?

Ответ: Кеширование в HTTP управляется с помощью специальных заголовков, которые определяют, когда и как можно повторно использовать загруженные данные.

▶️ Cache-Control — основной заголовок, задающий правила кеширования: время жизни (max-age), доступность (public, private), запрет кеширования (no-store) и др.

▶️ Last-Modified + If-Modified-Since — позволяют серверу сообщить дату последнего изменения ресурса, а клиенту — запрашивать данные только при обновлении

▶️ ETag + If-None-Match — используют уникальный идентификатор версии ресурса. Если версия не изменилась, сервер отвечает 304 Not Modified

Эти механизмы снижают нагрузку на сеть и ускоряют повторные загрузки.


tags: #собеседование

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥62