Реальные задачи с собеседований | Java
Открыть в Telegram
Буду сюда выкладывать реальные задачи и вопросы с собеседований, без копипаста с интернета и других каналов) Ссылка для друга - https://t.me/+K4vJFdalwlthYTQy Прислать задачи, реклама - @privatevoidmain
Больше4 354
Подписчики
+324 часа
+47 дней
+2030 день
Архив постов
Какая-то контора из Казани, криптопроект
Набрали 80 человек в зум в одно время, всем дали задание на час, и кто смог, в конце включал демку и показывал результат и проходил на след. этап.
#unknown
Прислать задачу | Подписаться
Альфа-банк
//6. провести ревью - всё ли здесь хорошо? class Scratch { private static final Logger log = getLogger(Scratch.class); private static volatile boolean ready = false; private static final Lock rLock = new ReentrantLock(); private static final Condition readyCondition = rLock.newCondition(); private static void waitAndLog() { try { rLock.lock(); log.info("rLock acquired, ready: {}", ready); if(!ready) readyCondition.await(); log.info("ready was awaited: {}", ready); } catch (InterruptedException e) { throw new RuntimeException(e); } finally { rLock.unlock(); } } public static void main(String[] args) { new Thread(Scratch::waitAndLog).start(); try { rLock.lock(); ready = true; log.info("signal about ready"); readyCondition.signal(); } finally { rLock.unlock(); } } }#alfabank | Подписаться
тооо есть... у вас в общем было как минимум 200 собеседований за эту неделю,
но мне прислали всего 4 задачи от двух подписчиков?🫡😆
Прислать задачу - @privatevoidmain
Альфа-банк
//5. За какое время выполнится программа на машине с 1 cpu без HT? static void sleepOneSecond() { try { Thread.sleep(1000); } catch (InterruptedException e) { throw new RuntimeException(e); } } public static void main(String[] args) { try(var pool = new ThreadPoolExecutor( /*core pool size*/ 2, /*maximum pool size*/ 10, /*keepAliveTime value and unit*/ 30, TimeUnit.SECONDS, new ArrayBlockingQueue<>(10))) { var start = System.currentTimeMillis(); for (int i = 0; i < 10; i++) { pool.execute(Pool::sleepOneSecond); //а если вот так? /* var t = new Thread(Pool::sleepOneSecond); t.setDaemon(true); pool.execute(t); */ } Runtime.getRuntime().addShutdownHook(new Thread(() -> log.info("Time taken: " + (System.currentTimeMillis() - start)))); } }#alfabank | Подписаться
Альфа-банк
//4. сколько байт будет вынужден копировать процессор? public static void main(String[] args) { Random rand = new Random(); var list = new ArrayList<byte[]>(10); for (int i = 0; i < 10; i++) { ByteBuffer buffer = ByteBuffer.allocate(1 << 20); rand.nextBytes(buffer.array()); list.add(buffer.array()); } //превышаем capacity, сколько байт будет вынужден копировать процессор ByteBuffer buffer = ByteBuffer.allocate(1 << 20); rand.nextBytes(buffer.array()); list.add(buffer.array()); }#alfabank | Подписаться
Кто ищет работу, сколько у вас было техсобесов за эту неделю?
Альфа-банк
//3. Что напишет программа? var al = Arrays.asList(1, 2, 3, 4, 5); var ll = new LinkedList<>(al); ll.add(6); al.add(6); log.info("al.equals(ll) = {}", al.equals(ll));#alfabank | Подписаться
IT ONE #repeat
Найти всех сотрудников, у которых общий размер начислений превышает 20
-- Persons со списком работников -- id | name -- ------------ -- 1 | Petya -- 2 | Vasya -- 3 | Kolya -- Payments с зарплатными начислениями ежемесячно. -- id | person_id | amount -- ----------------------------- -- 1 | 1 | 10 -- 2 | 1 | 20 -- 3 | 3 | 15#sql #itone | Прислать задачу | Подписаться
Альфа банк
//2. написать код чтобы найти чего нехватает, что лишнее и что поменялось var old = Map.of("Коля", 1, "Петя", 5, "Таня", 4); var fresh = Map.of("Коля", 3, "Вика", 7, "Таня", 4, "Ваня",9);#alfabank | Подписаться
Альфа-банк
//1. напишите свою реализацию метода equals class Person { private String firstName; private String surName; private String secondName; @Override //напишите свою реализацию } }#alfabank | Подписаться
Статистика для java-миддлов с hh🫡
Количество вакансий сократилось в два раза по сравнению с 2024 и в 5 раз по сравнению с 2021
it one
1. классика с массивом
2. Как избежать дедлока?
private void move(Account a1, Account a2, int summa) { synchronized (a1) { synchronized (a2) { // Проверки a1.money = a1.money + summa; } a2.money = a2.money + summa; } }Прислать задачу | Подписаться
Тбанк
1 Задачка с матрицей ин-тов найти максимальную сумму пересечения столбца и строки(все элементы из строки + все элементы из столбца) была аналогия типо ладья в какой-то клетке нужно максимум посчитать 2 проверить что односвязный список является палиндромом#tbank Прислать задачу | Подписаться
Сбер #sql
Какие индексы нужны для этих запросов?
CREATE TABLE products ( id SERIAL NOT NULL, name TEXT(255) NOT NULL, price FLOAT NOT NULL, creation_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, is_active BOOLEAN ); SELECT * FROM products WHERE price > 100 AND creation_time >= CURDATED - IN SELECT * FROM products WHERE price > 1000; SELECT * FROM products WHERE creation_time >= CURDATED - INTERVAL 1 WEEK;#sber Прислать задачу | Подписаться
IT ONE #repeat
Стандартные вопросы по работе транзакшнал -
public class BeanA() { private BeanB b; } @Transactional public void m1(List list) { for (Integer i : list) { b.m2(); } } public class BeanB() { @Transactional public void m2(Integer i) { // Добавляем запись в таблицу } }#itone Прислать задачу | Подписаться
Как у вас в компании с сокращениями, увольнениями жавистов в 2025?
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
