Java Developer
15.7K subscribers
1.93K photos
146 videos
8 files
2.19K links
Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

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

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

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
Что выведет код сверху?
Anonymous Quiz
2%
0
44%
1
34%
2
2%
null
18%
Ошибка компиляции
😁15🔥3🤔2
Git_Cheatsheet.pdf
306.4 KB
👩‍💻 Удобная шпаргалка для эффективной работы с Git

Это структурированный справочник, внутри которого множество команд:
1. Настройка Git (конфигурация);

2. Создание новых проектов;

3. Изменение, добавление и удаление файлов в репозитории;

4. Слияние веток (merging);

5. Коммиты и другие полезные команды под рукой.


tags: #полезное

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

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

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

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


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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82
🖥 Огромная шпаргалка по командам Linux

Собрал удобный конспект базовых команд Linux — чтобы всегда был под рукой. Подойдёт и новичкам, и тем, кто периодически забывает синтаксис.

Файлик в хорошем качестве оставил в комментариях.

tags: #полезное #linux

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥2
Вопрос с собеседования

Какие основные принципы написания unit-тестов?

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

Хороший unit-тест читается как спецификация: понятное имя, минимум лишней подготовки, понятная причина падения. Он должен быть быстрым и не ходить в сеть, базу и файловую систему. Если зависимость неизбежна, её подменяют заглушкой или моками, проверяя либо результат, либо контракт взаимодействия, но не оба сразу без необходимости.


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

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83🔥2
👩‍💻 Безопасность приложений: инструменты и практики для Java-разработчиков

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

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

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

tags: #статья

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

Где хранятся объекты?

Ответ: Все объекты, создаваемые через new, размещаются в куче (heap) — области памяти, управляемой сборщиком мусора. Ссылки на эти объекты могут храниться в стеке, если они являются локальными переменными внутри метода. Таким образом, объект — в куче, ссылка на него — в стеке.

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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍4🔥3
💻 Бесплатный инструмент для визуализации плана выполнения SQL-запросов

Просто вставляете EXPLAIN или EXPLAIN ANALYZE — и получаете понятное дерево выполнения запроса. Сразу видно, где запрос тормозит, какие индексы не используются, где начинается Full Table Scan и какие джойны работают неэффективно.

Удобный способ быстро понять, что именно не так с запросом, без ковыряния в сухом выводе EXPLAIN — забираем тут.

tags: #полезное

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

Как работает volatile? Гарантирует ли он атомарность операций?

Ответ: Ключевое слово volatile в Java используется, чтобы обеспечить видимость изменений переменной между потоками. Оно гарантирует, что при изменении значения одним потоком другие потоки увидят актуальное значение сразу, а не из кэша. Также volatile предотвращает переупорядочивание инструкций, что важно для корректной синхронизации.

Однако volatile не обеспечивает атомарность операций. Это значит, что составные действия вроде инкремента (++) или проверки и установки значения всё равно требуют дополнительных механизмов синхронизации — например, synchronized или Atomic* классов.


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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
This media is not supported in your browser
VIEW IN TELEGRAM
🔖 Инструмент для генерации реалистичных тестовых данных

Это удобный веб-сервис, который генерирует моки за секунды — он выдаёт CSV, JSON, SQL, Excel и ещё кучу форматов, без кода и сложных настроек.

Идеально для заполнения тестовых баз и заглушек для API — забираем тут.

tags: #полезное

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

Почему в Java интерфейс может иметь методы с реализацией (default)? Это не противоречит идее интерфейса?

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

Без default при добавлении нового метода пришлось бы менять весь существующий код. С default-методом интерфейс даёт базовую реализацию метода, которую необязательно переопределять в реализующих классах.


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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
👩‍💻 Программирование без условных операторов

В статье разбираются способы замены громоздких конструкций с if и switch в Java на более выразительные решения.

Показываются приёмы с использованием полиморфизма, функциональных интерфейсов и фабрик для создания гибкой архитектуры.

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

tags: #статья

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

В чём разница между @Bean и @Component в Spring?

Ответ: @Component применяется к классам и говорит Spring автоматически обнаружить и создать бин на основе этого класса при сканировании компонентов. Такой подход используют для собственных классов приложения: сервисов, репозиториев, контроллеров и других управляемых компонентов.

@Bean используется внутри конфигурационных классов и позволяет явно описать, как именно должен создаваться бин. Этот способ подходит, когда требуется кастомная логика инициализации или когда бин нельзя аннотировать напрямую, например для классов из сторонних библиотек.

Итог:
@Component — для автоматического создания бинов из классов приложения, @Bean — для ручной и более гибкой конфигурации бинов.

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

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥2
👩‍💻 Полезные фичи в Java для новичков

В статье автор рассказывает о четырёх фичах в Java, которые сам активно использует в своих проектах и которые, на его взгляд, могут упростить жизнь.

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

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

tags: #статья

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

Чем unit-тесты отличаются от интеграционных?

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

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


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

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍121