Java Developer
16.4K subscribers
1.49K photos
97 videos
1 file
1.59K links
Авторский канал действующего разработчика — интересные заметки, новые технологии, библиотеки и фреймворки

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

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

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
Что выведет код сверху?
Anonymous Quiz
7%
2
7%
3
28%
16
15%
18
43%
Ошибка
👩‍💻 Как устроена Caffeine — быстрая библиотека кэширования на Java

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

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

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

tags: #статья

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

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

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

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

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

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

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

tags: #статья

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

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

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

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

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

Какова структура у JWT-токена?

Ответ: JWT (JSON Web Token) состоит из трёх частей, разделённых точками:

▶️ Заголовок (Header) — содержит тип токена (JWT) и алгоритм подписи, например HMAC SHA256 или RSA

▶️ Полезная нагрузка (Payload) — включает так называемые “утверждения” (claims): данные вроде ID пользователя, срока действия токена, ролей и другой метаинформации

▶️ Подпись (Signature) — создаётся из заголовка и payload с использованием секретного ключа. Она гарантирует, что содержимое токена не было подделано.

Эти части кодируются в base64 и объединяются через точки: header.payload.signature.


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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👩‍💻 Неблокирующий вызов внешнего сервиса в процессе

В статье показано, как реализовать неблокирующие вызовы внешних API в бизнес-процессах с использованием BPMN-движков Camunda и Flowable.

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

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

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN 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
Что выведет код сверху?
Anonymous Quiz
20%
true, false
18%
false, true
25%
true, true
25%
false, false
12%
Ошибка
maven-cheat-sheet.pdf
147.3 KB
👩‍💻 Шпаргалка по основным командам Maven

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

Всё нужное на одном листе: базовые команды, рабочие флаги, создание архетипов, часто используемые плагины и даже специфичные штуки вроде mvn help:effective-pom или dependency:analyze.

tags: #полезное #шпаргалка

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
Требования на вакансию джуна, 2025 год, фото в цвете:

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

Что такое множество в 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
👩‍💻 От конфигурации к динамике. Новый API по созданию бинов в Spring

В статье разбирается новый API BeanRegistrar из Spring Framework 7 — он упрощает динамическую регистрацию бинов и заменяет устаревшие способы вроде BeanDefinitionRegistryPostProcessor.

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

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

tags: #статья

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

Как работает volatile? Гарантирует ли он атомарность операций?

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

Однако volatile не обеспечивает атомарность операций. Это значит, что составные действия вроде инкремента (++) или проверки и установки значения всё равно требуют дополнительных механизмов синхронизации — например, synchronized или Atomic* классов.


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

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