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

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

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

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
Вопрос с собеседования

Где в Java-приложении хранить бизнес-логику?

Ответ: бизнес-логику принято выносить в сервисные классы (Service), чтобы отделить её от контроллеров и инфраструктурного кода. В DDD логика может находиться внутри доменных сущностей и агрегатов. Такой подход упрощает поддержку, тестирование и масштабирование кода. Главное — не размазывать бизнес-логику по контроллерам и DAO.

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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
15💯7👍3
👩‍💻 Потоки в Java: Thread и Runnable

В статье объясняется как создавать потоки с помощью Thread и Runnable, и в каких случаях лучше использовать каждый из подходов.

Также рассматриваются проблемы классической многопоточности и преимущества виртуальных потоков, появившихся в Java 19.

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

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍4
Главное не подавать виду

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

Бывают ли классы static?

Ответ: static может быть только вложенный класс, то есть объявленный внутри другого класса. Такой класс создаётся без экземпляра внешнего класса и не имеет доступа к его нестатическим полям и методам. Внешний класс объявлять static нельзя — это синтаксически запрещено.

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

📱 Java Developer  | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍187
👩‍💻 Kubernetes и микросервисы для интернет-магазина

В статье описывается практический опыт развёртывания микросервисного приложения для интернет-магазина в Kubernetes.

Автор показывает, как с нуля создать кластер с помощью Docker Desktop и Kubeadm, развернуть два микросервиса с использованием Kafka и H2, и настроить взаимодействие между ними.

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

tags:
#статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥61
А ведь реально удобно

📱 Java Developer | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2612🔥4
Что выведет код сверху?
Anonymous Quiz
16%
000
8%
100
52%
010
24%
Ошибка компиляции
7🔥3
👩‍💻 Test-Driven Development: как полюбить модульное тестирование?

Test-Driven Development — это подход, при котором разработка начинается с написания тестов, а уже затем создаётся код, проходящий эти проверки.

В статье объясняется, как работает TDD на практике, какие у него преимущества и как применять этот подход эффективно.

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

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥1
Очевидно же

📱 Java Developer | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24😁61🤣1
👩‍💻 Глубокое погружение в Stream API Java

Stream API позволяет обрабатывать данные в функциональном стиле, что делает код проще, выразительнее и компактнее.

В статье объясняется, как работает этот подход, приведены реальные примеры и советы по лучшим практикам.

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

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍143
Всё, что падает вечером в пятницу, поднимается только в понедельник

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

Какие знаешь паттерны проектирования?

Ответ: Паттерны проектирования — это типовые решения для архитектурных задач, с которыми постоянно сталкиваются при разработке. Их делят на три категории:

▶️ Порождающие — управляют созданием объектов (Singleton, Factory Method, Builder, Prototype, Abstract Factory);

▶️ Структурные — описывают, как компоненты связаны между собой (Adapter, Facade, Decorator, Proxy, Composite, Bridge, Flyweight);

▶️ Поведенческие — регулируют взаимодействие между объектами и их обязанностями (Observer, Strategy, Command, State, Template Method, Iterator, Chain of Responsibility и др).

Знание паттернов помогает строить масштабируемую, гибкую и легко сопровождаемую архитектуру.


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

📱 Java Developer  | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍8
👩‍💻 Управление транзакциями в Spring: подробно о @Transactional

В статье рассказывается, как устроена аннотация @Transactional в Spring и почему иногда транзакции ведут себя не так, как вы ожидаете.

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

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

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥21
Они еще малы для такого

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

Почему HashMap не потокобезопасен, и что может пойти не так при одновременной записи в него?

Ответ: HashMap не синхронизирован, и при многопоточной записи могут возникнуть циклические ссылки (infinite loop) или потеря данных.

Причины:

▶️ При put() возможна перезапись данных в одной и той же ячейке

▶️ Resize (rehash) в многопоточной среде может привести к зацикливанию списка бакетов

▶️ При итерации можно получить ConcurrentModificationException

Решения:

▶️ Использовать ConcurrentHashMap для потокобезопасности

▶️ Синхронизировать доступ через Collections.synchronizedMap()

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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2110🔥2
👩‍💻 Ускорение Spring REST API на 200%

В статье рассказывается, как повысить производительность REST API на Spring, меняя подход к созданию контроллеров и выбору сервера.

Автор показывает, какие архитектурные решения позволяют заметно сократить время отклика и повысить эффективность.

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

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥73
Так и живём

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

Что такое race condition?

Ответ: Race condition (состояние гонки) — это ошибка в многопоточном или асинхронном коде, которая возникает, когда результат работы программы зависит от порядка выполнения потоков или операций.

Если несколько потоков одновременно обращаются к общему ресурсу без должной синхронизации, результат может быть непредсказуемым: например, потеря данных, некорректные вычисления или сбои в логике.

Чтобы избежать race condition, используют блокировки, мьютексы, транзакции или другие механизмы синхронизации.


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

📱 Java Developer  | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍134🔥2
👩‍💻 Функциональное программирование в Java

Функциональное программирование — это стиль написания кода, основанный на чистых функциях, иммутабельности данных и отсутствии побочных эффектов.

В статье разбираются основные принципы ФП в Java и показано, как использовать лямбда-выражения, функциональные интерфейсы и Stream API для упрощения разработки и повышения надежности кода.

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

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍6🔥2
Так вот оно что

📱 Java Developer | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
1😁33🔥7💯2