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

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

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

Реклама на бирже: https://telega.in/c/java_tg
Download Telegram
👩‍💻 Виртуальные потоки в Java

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

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

📱 Смотреть на YouTube

tags: #полезное

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍72
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5610🤣6🔥4👀3
Что выведет код сверху?
Anonymous Quiz
4%
1010
60%
1010.2
7%
20.2
29%
Ошибка
🔥17😁74
👩‍💻 Почему Exceptions в Java не взлетели — и что с этим делать в 2025 году?

В статье рассматриваются причины, по которым исключения в Java не прижились, и предлагаются альтернативные подходы к обработке ошибок — от классических try/catch до Typed Errors с использованием Kotlin и библиотеки Arrow.

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

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

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🤣3
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣3910😎5👨‍💻1
2
Что выведет код сверху?
Anonymous Quiz
54%
0
5%
1
4%
2
27%
null
10%
ArrayIndexOutOfBoundsException
🔥8👍54🤔4
👩‍💻 Ключевые паттерны системного дизайна

В видео разбираются основные архитектурные паттерны, которые помогают строить надёжные и масштабируемые системы: CQRS, Pub/Sub, Event Sourcing, Circuit Breaker и другие.

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

📱 Смотреть на YouTube

tags: #полезное

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

За счёт чего достигается синхронизация в ConcurrentHashMap?

Ответ:
В ConcurrentHashMap, начиная с Java 8, синхронизация достигается за счёт сочетания атомарных операций и локальной синхронизации на уровне отдельных ячеек (bin) таблицы.

Когда происходит вставка, карта сначала пытается разместить элемент в нужной ячейке массива table с помощью атомарной операции CAS (Compare-And-Swap). Это безблокирующий способ записи: если ячейка пуста, значение вставляется безопасно без захвата монитора.

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


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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍9🔥8👨‍💻3
👩‍💻 Бинарный поиск на пальцах

В статье простыми словами объясняется, как устроены массивы и как работает бинарный поиск «под капотом» — с наглядными примерами и аналогиями.

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

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

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍7🔥4🤯1
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣736👨‍💻6😁4
Что выведет код сверху?
Anonymous Quiz
15%
-2
32%
-1
21%
0
14%
1
4%
2
13%
Ошибка
🔥125👍1
👩‍💻 Основы работы с Spring Security

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

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

📱 Смотреть на YouTube

tags: #полезное

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥105👍5
Кто понял, тот понял

📱 Java Developer | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
😁45🤣17👨‍💻7🔥2🏆1
Вопрос с собеседования

Можно ли явно передать управление другому потоку?

Ответ:
В Java нельзя явно указать, какому потоку передать управление. Thread.sleep() гарантированно приостанавливает текущий поток как минимум на заданное время, но решение о том, какой поток выполнится следующим, остаётся за планировщиком. Thread.yield() вообще ничего не гарантирует — это лишь рекомендация планировщику временно приостановить текущий поток в пользу другого с тем же приоритетом.

Единственный способ заставить поток уступить процессор — это привести его в состояние блокировки: с помощью wait(), join(), LockSupport.park() или блокировок (synchronized, ReentrantLock и др.). Это приостанавливает выполнение до выполнения условий разблокировки, но даже в этом случае нельзя указать, какой именно поток будет следующим — планировщик сам решает порядок.


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

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
👍144🔥2
👩‍💻 Нельзя так просто взять и вычислить абсолютное значение

В статье разбираются неожиданные подводные камни при вычислении абсолютного значения double в Java, связанные с существованием +0.0 и -0.0.

Автор показывает, как корректно и эффективно реализовать метод abs(), чтобы избежать ошибок и снизить издержки, вплоть до безветвленного варианта на битовых операциях.

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

tags: #статья

📱 Java Developer | Чат
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥2
Мы не ищем легких путей

📱 Java Developer | #memes
Please open Telegram to view this post
VIEW IN TELEGRAM
38🤣16😁7💯2