Java Developer
16.3K subscribers
1.53K photos
102 videos
1 file
1.65K links
Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

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

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

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос с собеседования

Почему @Transactional не работает при вызове метода внутри того же класса?

Ответ: Spring активирует @Transactional через прокси, оборачивающие бины и перехватывающие внешние вызовы. Но если метод вызывается изнутри того же класса, прокси не используется — происходит прямой вызов, и аннотация не срабатывает.

Чтобы транзакция была активна, метод должен вызываться через прокси, например, путём внедрения собственного бина или получения его из ApplicationContext. Если требуется перехват внутренних вызовов, стоит использовать AspectJ — он работает на уровне байткода и не зависит от прокси-механизма.


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

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

Для чего используются статические блоки инициализации?

Ответ: Статические блоки инициализации однократно выполняются при инициализации класса — при первом обращении к классу. Они предназначены для выполнения кода, который должен выполниться до создания любых объектов этого класса и до вызова его конструкторов. Эти блоки принадлежат самому классу, а не его экземплярам, и обычно используются для сложной инициализации static-полей.

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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN 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
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет код сверху?
Anonymous Quiz
11%
false true
17%
true false
40%
false false
31%
Ошибка компиляции
👩‍💻 Обработка исключений в функциональном стиле

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

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

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

tags: #статья

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

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

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

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

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

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

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

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

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

tags: #полезное

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
VK приглашает на Java AI meetup 9 июля. Обещают доклады топовых спикеров из AI-департамента, тематическую дискуссию и много полезных знакомств в индустрии.
Подробнее — здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопрос с собеседования

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

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

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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
⭐️ Техножурнал Яндекс 360: рассказываем о технологиях

В Яндекс 360 мы создаём технологии, которые работают в основе более чем 13 сервисов, включая Диск, Почту, Телемост, Мессенджер и другие.

Открывайте Техножурнал, чтобы узнать:

Как мы балансируем нагрузку в 300k RPS в Яндекс Мессенджере,
Как подружили MongoDB и PostgreSQL в Диске,
Какие в команде культура и ценности.

А ещё — как мы внедряли DDD, кто такой Technical Owner, как управляем 650+ шардами PostgreSQL и как подходим к проектированию архитектуры наших сервисов.

⭐️ Всё это — в Техножурнале Яндекс 360.

@yandex360team
Please open Telegram to view this post
VIEW IN TELEGRAM