Java Developer – Telegram
Java Developer
15.6K subscribers
1.89K photos
144 videos
2 files
2.14K links
Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

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

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

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

Что такое Spring Actuator?

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

Он предоставляет эндпоинты вроде /actuator/health для проверки состояния приложения и /actuator/metrics для сбора метрик, которые могут опрашиваться системами мониторинга, например Prometheus. Доступ к эндпоинтам настраивается и может быть ограничен по безопасности.


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

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84🔥1
👩‍💻 Как ускорить MongoDB в Java: profiling, explain(), индексация и антипаттерны

В статье разобран практический подход к ускорению MongoDB через explain(), профилирование и индексацию в Spring Boot.

Отдельно автор показывает, как находить узкие места в запросах и устранять их без догадок, опираясь на конкретные измерения.

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

tags: #статья

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

Чем отличается логирование от трейсинга?

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

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


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

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥42
👩‍💻 Комбинированная авторизация в Spring Security: Социальные сети и логин через username/password

В рамках статьи автор решил разобраться с авторизацией и аутентификацией на основе базы данных в Spring Security 6, а также внедрить авторизацию с помощью социальных сетей (Google, GitHub и др).

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

tags:
#статья

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

Что будет, если очередь пула потоков уже заполнена, но подаётся новая задача?

Ответ: Если очередь пула потоков заполнилась, то поданная задача будет «отклонена». Например - метод submit() у ThreadPoolExecutor выкидывает RejectedExecutionException, после которого вызывается RejectedExecutionHandler.

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

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍133🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🌐 Задачи как на LeetCode, только для Linux и Kubernetes

Платформа с реальными DevOps-задачами — решаете кейсы по Linux, Docker и Kubernetes, получаете автоматическую проверку, подсказки и готовые разборы.

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

Забираем — тут.

tags: #полезное

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥4
Не переводи стрелки, собака!

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

Что такое множество в Java и какие существуют его стандартные реализации?

Ответ: Множество (Set) в Java — это коллекция без повторяющихся элементов. Оно реализуется через интерфейс java.util.Set. Стандартные реализации в JDK:

HashSet — основан на хеш-таблице, не сохраняет порядок элементов, допускает null.

LinkedHashSet — расширяет HashSet, сохраняет порядок добавления.

TreeSet — реализует NavigableSet, хранит элементы в отсортированном порядке по Comparable или Comparator.

EnumSet — оптимизирован для хранения элементов одного перечисления (enum), очень быстрый и компактный.

CopyOnWriteArraySet — потокобезопасная реализация на базе CopyOnWriteArrayList, используется, если читающих потоков больше, чем записывающих.

Эти классы покрывают разные сценарии: от высокой производительности до потокобезопасности и сортировки.


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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍112
👩‍💻 Лучшие практики применения

В статье рассматриваются лучшие практики использования Kafka: правильная настройка продюсеров, консумеров и конфигурация брокеров.

Автор подробно освещает ключевые технические аспекты Kafka, приводя наглядные примеры, реальные кейсы и рекомендации по настройке.

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

tags: #статья

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

Что такое CORS и CSRF?

Ответ: CORS (Cross-Origin Resource Sharing) — это механизм безопасности браузера, который контролирует, какие внешние источники (домены) могут обращаться к ресурсам сайта. Он защищает пользователя от несанкционированных запросов со сторонних сайтов и реализуется через HTTP-заголовки, которые сервер явно разрешает или запрещает.

CSRF (Cross-Site Request Forgery) — это тип атаки, при которой злоумышленник заставляет браузер пользователя выполнить нежелательный запрос к сайту, на котором пользователь уже аутентифицирован. Защита от CSRF обычно реализуется с помощью CSRF-токенов, проверки заголовков и настройки cookie.


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

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍5🔥1
👩‍💻 Как должен выглядеть правильный Docker Image для Spring Boot приложения?

В статье показано, как собрать Docker-образ Spring-приложения с готовыми средствами для диагностики и мониторинга.

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

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

tags: #статья

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

Какие существуют модели авторизации и в чём их отличия?

Ответ: Авторизация определяет, какие действия и ресурсы разрешены пользователю после аутентификации. Основные модели авторизации различаются тем, как принимается решение о доступе.

Ролевая модель (RBAC) основана на ролях. Пользователю назначаются роли, а каждая роль определяет набор разрешённых действий. Модель проста в реализации и широко используется, но плохо подходит для сложных и динамических правил доступа.

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

Атрибутная модель (ABAC) принимает решение о доступе на основе атрибутов пользователя, ресурса и контекста, например времени, местоположения или типа запроса. Это самая гибкая модель, но и самая сложная в реализации и сопровождении.

Итог: RBAC подходит для простых систем, permission-based — для более точного контроля, ABAC — для сложных бизнес-правил и динамических политик доступа.


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

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥2
👩‍💻 Hibernate Best Practices для начинающих

В статье собраны базовые рекомендации по работе с Hibernate, которые помогут сразу выстроить устойчивую архитектуру и не допустить распространённых ошибок.

Автор разбирает, как задавать id, настраивать связи между сущностями, избегать N+1, использовать ленивую загрузку, кэш второго уровня и корректно работать с equals, hashCode и исключениями.

⛓️ Читать статью

tags: #статья

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

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

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

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

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

Почему метод clone() объявлен в классе Object, а не в интерфейсе Cloneable?

Ответ: Метод clone() определён в классе Object, потому что он реализует базовый механизм побитового копирования объекта средствами JVM (через native-реализацию). Он объявлен как protected, чтобы не допустить прямого вызова вне класса, если метод не переопределён.

Интерфейс Cloneable при этом — маркерный, без методов. Он служит лишь индикатором того, что объект допускает клонирование. Если объект не реализует Cloneable, а метод clone() всё же вызывается, будет выброшено исключение CloneNotSupportedException. Это позволяет обеспечить контроль над тем, какие классы разрешают копирование, и избежать некорректного поведения при клонировании по умолчанию.


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

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥3
👩‍💻 Mockito и как им пользоваться

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

Автор объясняет, как создавать моки, задавать их поведение и проверять вызовы — с примерами кода и интеграцией с JUnit.

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

tags: #статья

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

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

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

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


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

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

Что делает метод clone()?

Ответ: clone() создаёт копию объекта. Реализация по умолчанию делает поверхностное копирование: примитивы копируются, а ссылки на вложенные объекты остаются теми же. Чтобы clone() работал, класс обязан реализовывать Cloneable, иначе будет ошибка CloneNotSupportedException.

Метод обычно переопределяют, чтобы настроить логику копирования или сделать копию глубже. При этом стандартно вызывают super.clone() и дальше вручную дублируют необходимые поля.

Использование clone() считается не самым удобным способом копирования объектов, поэтому в реальных проектах чаще применяют конструкторы копирования или фабричные методы.


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

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
👩‍💻 Перевод Spring Boot на HTTPS без ругани браузера

Данная статья рассчитана на тех, кто хочет сделать так, чтобы их Spring Boot приложение могло работать с HTTPS без предупреждений со стороны браузера о небезопасном подключении.

В этой статье разбирается именно работа со Spring Boot и вшитым в него Apache Tomcat.

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

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔5👍3