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
Please open Telegram to view this post
VIEW IN TELEGRAM
😁314
Вопрос с собеседования

В чём заключается разница между методами start() и run()?

Ответ: Метод start() запускает новый поток и передаёт ему выполнение метода run(). В результате run() выполняется в другом потоке, параллельно с текущим.

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

Это ключевое различие: start() создаёт параллелизм, run() — нет.


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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍151
👩‍💻 Зонтичный мониторинг на коленке

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

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

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

tags: #статья

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

Чем аутентификация отличается от авторизации?

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

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


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

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16
👩‍💻 Обратная совместимость в Java-мире

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

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

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

tags: #статья

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

Почему метод 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
👍122🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
👩‍💻 Сборник идей для пет-проектов

Это культовый репозиторий с сотней пет-проектов для реализации: от простых CLI-инструментов до полноценных веб-приложений

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

Отличный ресурс, чтобы собрать портфолио — забираем тут.

tags: #полезное

📱 Java Developer | 📲 MAX
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍2🔥2
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