Java Interview Tasks
4.91K subscribers
214 photos
1 video
1 file
142 links
Реальные вопросы и задачи с собеседований.
Оригинальный авторский контент.
Актуальный материал.
Уровень вопросов от junior до supersenior.

Автор канала - @alexzelentsov

По рекламе: @alexzelentsov
Download Telegram
🔍 Ответ на задачу про Virtual Threads: Опасность synchronized 📌
В текущей реализации , начиная с Java 21 виртуальные потоки не могут освобождать системный (carrier) поток, если они находятся внутри synchronized блока или вызывают нативный метод. Это называется Pinning. Если ваш код делает тяжелые сетевые вызовы внутри synchronized, вы можете забить все системные потоки и свести на нет всю пользу от виртуальных потоков.

Вывод:
Системный поток будет заблокирован (ответ 2). Рекомендуется использовать ReentrantLock, так как он не вызывает закрепления потока.

⚡️ Не перепутайте:
Это не значит, что synchronized — зло. Если операция внутри блока быстрая (просто инкремент), закрепление не будет проблемой.

#java #java21 #virtualthreads #loom #concurrency #интервью #java_interview_tasks
👍4🔥1
Devoxx Belgium 2026 только закончилась:

https://youtube.com/playlist?list=PLKlmOVksNGoE&si=_BvX8q8qFK4hR4ig
🔥3
Что произойдет, если поток вызовет tryLock(), а замок уже занят другим потоком?
ReentrantLock lock = new ReentrantLock();
// ... где-то в другом потоке lock.lock() ...
if (lock.tryLock()) {
try { /* работа */ }
finally { lock.unlock(); }
} else {
System.out.print("Busy");
}
🤯4❤1
🔍 Ответ на задачу про ReentrantLock: Попытка не пытка 🚪
Метод tryLock() — неблокирующий. Он мгновенно возвращает true, если замок удалось захватить, и false, если нет. Это позволяет потоку избежать ожидания и заняться чем-то другим или реализовать свою логику повторных попыток.

Вывод:
Поток напечатает "Busy" и не будет блокироваться.

⚡️ Не перепутайте:
При использовании lock() всегда вызывайте unlock() в блоке finally. Со synchronized об этом заботится сама JVM.

#java #concurrency #multithreading #reentrantlock #интервью #java_interview_tasks
🔥4👍1🤨1
📂 Подборка интересных каналов по IT, AI & HR Tech ✔️

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

В Подборке вы найдёте (кратко):
AI-блок: новости, нейросети, ИИ-инструменты и кейсы внедрения, стартапы, датасеты
Dev-блок: Java, Python, JS (Frontend/Backend), Mobile, QA, промышленная автоматизация (IIoT)
Отдельно: HR Tech, IT-вакансии, биржа фриланса, SciPop, Cybersecurity, бизнес-новости, Agile/PMP-менеджмент
Бонус: IT-мемы и юмор


🔗 [ Добавить подборку ]
 
 📩 Записаться в папку
👍4❤1🤝1
🇨🇳Kimi K3 VS GPT-5.6 Sol🇺🇸: что выбрать? ... чем хорош Kimi

Все обсуждают ChatGPT, но у Kimi от Moonshot AI из Китая есть свои сильные стороны:

— Kimi K3: $3 / $15 — открытые веса, 2.8T параметров;
— 1M токенов — ещё и с нативным видео;
— AA Intelligence Index v4.3 — 57 в v4.1;
— сложные задачи, контроль и приватность + видео ;
— можно развернуть у себя — нужен сервер от 64 GPU;

Если попросить Kimi собрать инфополе по IT и AI с нуля: он сформирует чистую подборку. Вот пример того, как получилась прекрасная информационная Лента из 20+ каналов по IT & AI: AI-воркфлоу, нейрогенерации, ИИ-инструменты и их внедрение, IT технологии: тренды, обзоры, инсайты от первых лиц и др.
 
🔗 [Посмотреть ИнфоЛенту от KIMI]
❤3🔥1👌1
Что выведет этот код?
Anonymous Quiz
36%
0
15%
2
44%
IllegalStateException
5%
1
🤨6
Что выведет этот код?
Semaphore sem = new Semaphore(0);
sem.release();
sem.release();
System.out.println(sem.availablePermits());
🥴4
🔍 Ответ на задачу про Semaphore: Кто потерял ключи? 🔑
В отличие от многих других синхронизаторов, Semaphore в Java — это просто счетчик. Метод release() просто увеличивает счетчик разрешений на единицу. Ему совершенно всё равно, вызывали ли вы acquire() до этого.

Вывод:
Код напечатает 2. Это свойство часто используют для передачи сигналов между потоками: один поток ждет (acquire), а другой подает сигнал о готовности (release).

⚡️ Не перепутайте:
Если вам нужен строгий замок, где отдать ключ может только тот, кто его взял — используйте ReentrantLock.

#java #concurrency #semaphore #multithreading #интервью #java_interview_tasks
🔥2