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
👩‍💻 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
Вопрос с собеседования

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

Ответ: Если очередь пула потоков заполнилась, то поданная задача будет «отклонена». Например - метод 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