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

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

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

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Социальная инженерия наглядно

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

Что такое CI/CD и зачем он нужен в разработке?

Ответ: CI/CD (Continuous Integration / Continuous Delivery или Deployment) — это подход к разработке, при котором изменения в коде автоматически проходят через этапы сборки, тестирования и доставки.

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

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


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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍4🔥3
👩‍💻 10 самых интересных ошибок в Java проектах за 2025 год

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

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

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

tags: #статья

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

Как можно реализовать аутентификацию с использованием Redis?

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

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


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

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7💯3🔥1
👩‍💻 Телеграфируем кодом Морзе через Java Stream API

В статье автор показывает, как на Java с помощью Stream API и без сторонних библиотек собрать телеграф: от загрузки таблицы Морзе до генерации аналогового аудиосигнала.

Под капотом — mapMulti, кастомный Collector, аудио через javax.sound, а в качестве вывода — настоящее «пип-пип» из динамика.

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

tags: #статья

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

Как работает аутентификация с использованием JWT токена?

Ответ: После успешной проверки учётных данных сервер создаёт JWT токен, содержащий информацию о пользователе и срок действия, и подписывает его секретным ключом или приватным ключом. Токен передаётся клиенту и далее отправляется с каждым запросом, как правило в заголовке Authorization.

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


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

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍114🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
😈 Ресурс, где разбирают веб-безопасность на пальцах

Hacksplaining — это платформа, где уязвимости не объясняют на теории, а воспроизводят их в интерактивном формате.

Сразу наглядно видно, как именно ломают приложения и в чём чаще всего ошибаются разработчики.

Что узнаете:
▶️ Как работают XSS, SQL-инъекции, атаки на авторизацию и загрузку файлов

▶️ Какие данные утекают при взломе и какие действия получает атакующий

▶️ Какие ошибки в логике, формах и настройках чаще всего приводят к уязвимостям

▶️ Какие защитные меры действительно закрывают дыры, а не создают иллюзию безопасности


Хороший способ разобраться в азах веб-безопасности на практике и научиться писать более надежный код.

Ссылка на ресурс

tags: #полезное

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

Чем отличается аутентификация с помощью JWT токена от аутентификации с помощью сессионного токена, хранящегося в Redis?

Ответ: При JWT-аутентификации сервер не хранит состояние сессии: токен содержит данные пользователя и проверяется по подписи и сроку действия. Это хорошо масштабируется, но усложняет досрочный отзыв токенов.

При использовании сессионного токена в Redis сервер хранит сессии и проверяет их при каждом запросе. Такой подход даёт полный контроль над сессиями и позволяет мгновенно их инвалидировать, но требует серверного хранилища и дополнительного обращения к Redis.


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

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

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

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

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

tags:
#статья

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

Как работает область видимости переменных в Java?

Ответ: Область видимости переменной определяет, где она доступна в коде. В Java переменные видны только внутри блока, где они объявлены — это может быть метод, цикл, условие или класс.

Например, переменная, объявленная внутри if или for, не доступна снаружи этого блока. Переменные экземпляра (поля) доступны во всех методах объекта, а локальные переменные — только в том методе или блоке, где они созданы.

Также важно: нельзя использовать переменную до её объявления — Java строго следит за этим на этапе компиляции.


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

📱 Java Developer  | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🤣1
👩‍💻 Spring Boot наконец получил нативную поддержку gRPC

В статье разбирается выход Spring gRPC 1.0 и показано, как теперь поднимать gRPC сервисы в Spring Boot без сторонних стартеров и лишних обходных решений.

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

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

tags:
#статья

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

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

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

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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72🔥1
👩‍💻 Новый open source Java коннектор для Tarantool: практика с примерами кода

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

Отдельно автор разбирает переход с Redis на Tarantool в Spring Data с минимальными изменениями приложения и сохранением привычного репозиторного API.

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

tags:
#статья

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

В чём разница между переопределением и перегрузкой?

Ответ: Перегрузка (overloading) — это способ определить в одном классе несколько методов с одинаковым именем, но разными параметрами.

Переопределение (overriding) используется в наследовании, когда подкласс предоставляет свою реализацию метода, унаследованного от родительского класса.

Перегрузка помогает организовать разную логику под одним именем, а переопределение позволяет изменить поведение унаследованного метода.


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

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🤔1
👩‍💻 JWT, JWKS, OAuth2 и OpenID Connect — разбираем на примерах. Часть 1

JWT и OAuth используются почти в каждом веб-проекте, но часто остаются «чёрным ящиком», собранным по туториалам без понимания внутренних механизмов.

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

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

tags: #статья

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

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

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

Для сбора метрик обычно используется отдельный HTTP-эндпоинт /metrics, который отдаёт показатели в формате, понятном системам мониторинга, например Prometheus. Помимо него часто применяются служебные эндпоинты /health или /healthz для проверки состояния сервиса и /ready или /readiness для определения готовности приложения принимать трафик. Эти эндпоинты дополняют метрики и используются в системах наблюдаемости и оркестрации.


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

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4🔥1
👩‍💻 Под капотом многопоточной синхронизации: как потоки договариваются через Mark Word

В статье разобрано, как на самом деле работает synchronized в Java: какие состояния проходит объект, как JVM динамически выбирает стратегию блокировки и какую роль в этом играет Mark Word заголовка объекта.

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

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

tags: #статья

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

Что такое 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