Java Developer
16.1K subscribers
1.57K photos
116 videos
2 files
1.71K links
Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

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

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

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
Что выведет код сверху?
Anonymous Quiz
2%
0
34%
1
39%
2
4%
null
21%
Ошибка компиляции
👍137😁2
👩‍💻 Создание HTTP-сервера на Java NIO

Java NIO (Non-blocking I/O) — это часть стандартной библиотеки Java, обеспечивающая работу с неблокирующими вводом-выводом, сокетами и буферами.

В статье рассматривается создание HTTP-сервера с использованием этого API, позволяющего эффективно обрабатывать множество соединений в одном потоке.

Что вы узнаете в статье?
▶️ Как настроить ServerSocketChannel и принимать соединения?

▶️ Как управлять запросами через Selector в одном потоке?

▶️ Как обработать HTTP-запрос и отправить ответ?

▶️ В чем преимущества NIO перед блокирующими серверами?


Автор показывает ключевые приемы работы с Java NIO и объясняет, как применить их на практике.

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

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74🔥2👨‍💻1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁38🤣196👨‍💻4🔥1
Вопрос с собеседования

Как работает механизм автоприведения типов в Java?

Ответ: Java выполняет автоматическое преобразование типов (автокастинг), если тип меньшего размера можно безопасно привести к типу большего размера, например, int в long. Однако преобразование в обратную сторону требует явного приведения типа.

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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍6🔥2
👩‍💻 Архитектурные принципы Spring Security. Часть вторая

В статье разбирается, как устроены объекты Authentication — из чего они состоят, где хранятся и как безопасно использовать их в разных слоях приложения.

Автор на практике показывает как реализовать свой фильтр для аутентификации внешнего сервиса, создать кастомный AuthenticationToken, передать его в SecurityContext и открыть доступ к защищённым ресурсам.

Что вы узнаете из статьи:
▶️ Что такое Authentication и как работают его компоненты: Principal, Credentials, Authorities, Details?

▶️ Как получить Authentication в контроллере, сервисе и глубоко внутри бизнес-логики?

▶️ Зачем нужен SecurityContextHolder и как он работает?

▶️ Почему UsernamePasswordAuthenticationToken не всегда лучший выбор?

▶️ Как сохранять SecurityContext между запросами с помощью SecurityContextRepository?


Продолжение, в котором Spring Security раскрывается без упрощений — с фокусом на архитектуру, реалистичные кейсы и аккуратную работу с контекстом безопасности.

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

🔖 Предыдущая часть — КЛИК


tags: #статья

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

Что такое livelock?

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

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


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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
14🔥4👨‍💻2👍1
👩‍💻 100+ ресурсов по System Design

Репозиторий best-system-design-resources — это аккуратно собранная подборка ресурсов по системному дизайну: книги, статьи, видео, курсы и разборы архитектур.

Что внутри:
Основы: CAP-теорема, масштабирование, консистентность

Разбор ключевых компонентов: кэш, балансировка, шардирование, очереди

Примеры реальных систем: поисковики, видеохостинги, мессенджеры

Курсы и гайды: System Design Primer, Grokking, Gaurav Sen

Задачи и кейсы с интервью


Хорошая база, чтобы структурировать знания и увереннее разбираться в архитектуре крупных систем.

📱 Ссылка на GitHub

tags: #полезное

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

Что такое брокер сообщений и какие из них обычно используются в проектах на Java?

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

В Java-проектах наиболее часто используют Apache Kafka — для высоконагруженной потоковой обработки, RabbitMQ — для гибкой очередности и маршрутизации сообщений, и ActiveMQ — как решение, тесно интегрированное с экосистемой Java (например, через JMS API).


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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12👨‍💻32
👩‍💻 Большой гайд: пишем микросервисы на Java и Spring Boot

В статье представлен подробный гайд по созданию микросервисов на Java с использованием Spring Boot, их контейнеризации в Docker и развертыванию в AWS через EKS.

Автор пошагово показывает, как настроить доменные имена, HTTPS, логирование и мониторинг через Prometheus и Grafana.

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

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👨‍💻4
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣534😁3🤔1
Что выведет код сверху?
Anonymous Quiz
7%
2
8%
3
28%
16
14%
18
43%
Ошибка
🤯15🔥64
👩‍💻 Как устроена Caffeine — быстрая библиотека кэширования на Java

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

Автор показывает, почему эту библиотеку выбирают такие проекты, как Kafka и Cassandra, и что из её подходов можно применить в своих приложениях.

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

tags: #статья

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

Что такое String Pool в Java и как он работает?

Ответ: String Pool — это специальная область в памяти, где хранятся строковые литералы. Когда создается строка с помощью литерала (например, String s = "Hello";), JVM проверяет, существует ли уже такая строка в пуле. Если строка с таким значением уже есть, используется существующая строка, иначе создается новая строка и добавляется в пул. Это позволяет экономить память, так как одинаковые строковые литералы будут ссылаться на один и тот же объект в пуле.

📱 Java Developer | #собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
👍144🔥3👨‍💻1
👩‍💻 Гибкий поиск в Spring Data Elasticsearch

В статье показывается, как в Spring Data Elasticsearch организовать поиск, который понимает запросы с ошибками, склонениями и неполными словами.

Например, чтобы “программирование” находилось по запросам “прога”, “програм”, “pragramirovanie” — подключаются fuzziness, русские стеммеры и настраиваются аналайзеры через Java-конфигурацию.

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

tags: #статья

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

Из каких частей состоит HTTP-запрос?

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

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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍6🔥2
👩‍💻 Архитектурные принципы Spring Security. Часть третья

В статье объясняется, как работает AuthenticationProvider — ключевая абстракция, отвечающая за проверку учетных данных и создание аутентифицированных объектов в Spring Security.

Автор на примере показывает, как реализовать собственный провайдер, зарегистрировать его в конфигурации и обрабатывать особые кейсы (например, “впускать Даниэля без пароля”) без нарушения встроенной логики безопасности.

Что вы узнаете из статьи:

▶️ Как устроено взаимодействие AuthenticationProvider и AuthenticationManager

▶️ Чем отличается Authentication до и после успешной проверки

▶️ Как обрабатывать логин под разные сценарии без переписывания фильтров

▶️ Как правильно возвращать null из authenticate()

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

▶️ Как логировать успешную аутентификацию через AuthenticationSuccessEvent


Это заключительная часть цикла, где архитектура Spring Security раскрывается через реализацию собственного AuthenticationProvider.

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

🔖 Предыдущая часть — КЛИК


tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥3👍2