ch
Feedback
Библиотека собеса по Java | вопросы с собеседований

Библиотека собеса по Java | вопросы с собеседований

前往频道在 Telegram

Вопросы с собеседований по Java и ответы на них. По рекламе: @proglib_adv Учиться у нас: clc.to/3wECtA Для обратной связи: @proglibrary_feeedback_bot

显示更多
6 487
订阅者
+224 小时
-17
+1230
吸引订阅者
六月 '26
六月 '26
+58
在2个频道中
五月 '26
+83
在3个频道中
Get PRO
四月 '26
+87
在2个频道中
Get PRO
三月 '26
+81
在2个频道中
Get PRO
二月 '26
+121
在4个频道中
Get PRO
一月 '26
+93
在1个频道中
Get PRO
十二月 '25
+96
在5个频道中
Get PRO
十一月 '25
+112
在2个频道中
Get PRO
十月 '25
+94
在1个频道中
Get PRO
九月 '25
+95
在1个频道中
Get PRO
八月 '25
+78
在3个频道中
Get PRO
七月 '25
+98
在0个频道中
Get PRO
六月 '25
+70
在0个频道中
Get PRO
五月 '25
+78
在0个频道中
Get PRO
四月 '25
+133
在1个频道中
Get PRO
三月 '25
+283
在52个频道中
Get PRO
二月 '25
+176
在31个频道中
Get PRO
一月 '25
+207
在35个频道中
Get PRO
十二月 '24
+179
在35个频道中
Get PRO
十一月 '24
+326
在37个频道中
Get PRO
十月 '24
+284
在35个频道中
Get PRO
九月 '24
+299
在35个频道中
Get PRO
八月 '24
+289
在35个频道中
Get PRO
七月 '24
+275
在35个频道中
Get PRO
六月 '24
+272
在31个频道中
Get PRO
五月 '24
+429
在37个频道中
Get PRO
四月 '24
+474
在37个频道中
Get PRO
三月 '24
+299
在29个频道中
Get PRO
二月 '24
+373
在29个频道中
Get PRO
一月 '24
+392
在24个频道中
Get PRO
十二月 '23
+900
在26个频道中
Get PRO
十一月 '23
+229
在3个频道中
Get PRO
十月 '23
+369
在22个频道中
Get PRO
九月 '23
+1 761
在0个频道中
日期
订阅者增长
提及
频道
24 六月+1
23 六月+2
22 六月+3
21 六月+4
20 六月+2
19 六月+2
18 六月+3
17 六月+1
16 六月+2
15 六月+2
14 六月0
13 六月+6
12 六月+2
11 六月0
10 六月0
09 六月+1
08 六月+1
07 六月+4
06 六月+5
05 六月+3
04 六月+5
03 六月+5
02 六月+1
01 六月+3
频道帖子
👩‍💻 Алгоритмическая сложность коллекций в Java Приглашаем на открытый урок. 🗓 01 июля в 20:00 МСК 🆓 Бесплатно. Урок в рам
👩‍💻 Алгоритмическая сложность коллекций в Java Приглашаем на открытый урок. 🗓 01 июля в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «Java-разработчик». Программа урока: ✔️Основы алгоритмической сложности и принцип работы о-нотации; ✔️Влияние сложности операций на выбор подходящих коллекций; ✔️Сравнение популярных коллекций Java по эффективности выполнения различных операций; ✔️Практическая демонстрация, в которой будет показано, как эффективно использовать коллекции; ✔️Рекомендации по выбору коллекций для решения задач разного уровня сложности. 🔗 Ссылка на регистрацию: https: https://clc.to/ZUqYAg Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

2
❓ Чем WHERE отличается от HAVING? Оба фильтруют, но на разных этапах выполнения запроса. 🔹 WHERE отсекает строки до группировки (GROUP BY) и не может работать с агрегатными функциями. 🔹 HAVING отсекает уже сгруппированные данные после агрегации и умеет работать с агрегатами (COUNT, SUM, AVG). Логический порядок выполнения: WHERE → GROUP BY → HAVING → SELECT → ORDER BY. 🐸 Библиотека собеса по Java
529
3
❓ Какие бывают уровни изоляции транзакций? От слабого к строгому: → READ UNCOMMITTED — видны незакоммиченные изменения других транзакций (грязное чтение). → READ COMMITTED — видны только закоммиченные данные, но при повторном чтении строки значение может измениться (неповторяющееся чтение). → REPEATABLE READ — одна и та же строка читается стабильно в рамках транзакции, но возможны фантомы (новые строки, подходящие под условие). → SERIALIZABLE — полная изоляция, транзакции выполняются как будто строго последовательно. Чем выше уровень, тем меньше аномалий, но больше блокировок и ниже пропускная способность. Выбор — это компромисс между корректностью и производительностью. 🐸 Библиотека собеса по Java
628
4
🤖 Какие задачи можно действительно доверить ИИ? Уже завтра разберём это на открытом уроке «AI-инструменты в разработке: как писать код быстрее с помощью ассистентов». Спикер — Ольга Лукьянова, руководитель команды поиска и навигации по коду в SourceCraft от Яндекса. После урока вы: 🔹 поймёте, какие задачи стоит делегировать AI уже сегодня; 🔹 научитесь быстрее разбираться в новых проектах и кодовой базе; 🔹 увидите, как выглядит современный workflow разработки с AI; 🔹 узнаете, где AI помогает экономить время, а где всё ещё нужен контроль разработчика. На практике разберём путь от получения задачи до готового Pull Request с использованием AI-инструментов и AI-ревью. 🗓️ 23 июня, 19:00 (МСК) ⏱️ 90 минут 👉 Зарегистрироваться и получить рабочий AI-workflow для своих задач
593
5
✔️ Java-тест: медленный сервис кладёт всё приложение Внешний API затупил на 30 секунд и наш сервис перестал отвечать целиком 👇 📦 Задание — code review Ходим во внешний платёжный шлюз через RestTemplate. @Configuration public class HttpConfig { @Bean public RestTemplate restTemplate() { return new RestTemplate(); } } @Service @RequiredArgsConstructor public class PaymentGatewayClient { private final RestTemplate restTemplate; public GatewayResponse charge(ChargeRequest request) { return restTemplate.postForObject( "https://gateway.example.com/charge", request, GatewayResponse.class ); } } ▪️ Объясни — Что происходит с пулом потоков Tomcat, когда внешний шлюз отвечает медленно или висит. — Почему «ложится» всё приложение, хотя тормозит только один внешний вызов. — Как настроить таймауты правильно (connect / read), зачем connection pool и где здесь место для timeout + circuit breaker / bulkhead. Ставьте → 🔥, если нравится формат. Если нет → 🌚 💬 Решения под спойлер. Сравним, какое будет лучше. 🐸 Библиотека собеса по Java #practise
1 844
6
🤖 AI пишет код за вас? Это самое скучное, что он умеет Основное время разработчик тратит на другое: разобраться в чужой кодо
🤖 AI пишет код за вас? Это самое скучное, что он умеет Основное время разработчик тратит на другое: разобраться в чужой кодовой базе, найти нужный участок проекта, проверить решение, собрать Pull Request. Вот где AI реально экономит часы — если знать, как им пользоваться. 23 июня Ольга Лукьянова покажет это на практике: как с помощью современных AI-инструментов быстро погружаться в незнакомый проект, находить нужный код, реализовывать задачи и проверять результат до ревью коллег. В итоге вы увидите не отдельные приёмы и промпты, а целостный workflow, который можно встроить в свою работу уже на следующий день 🔥 Чтобы лучше погрузиться в тему: 📺 Выступление про SourceCraft 📖 Статья на Хабре 🗓️ Когда: 23 июня, 19:00 (МСК) 👉 Занять место на открытом уроке
631
7
❓ Что такое индекс в БД и почему он ускоряет поиск? Индекс — это отдельная структура данных (чаще всего B-дерево), которая хранит отсортированные значения столбца со ссылками на соответствующие строки таблицы. Благодаря сортировке поиск идёт за O(log n) вместо полного сканирования таблицы O(n). Это как алфавитный указатель в книге: не нужно читать всё подряд. Цена: индекс занимает место на диске и замедляет INSERT/UPDATE/DELETE, потому что его тоже нужно поддерживать в актуальном состоянии. Поэтому индексируют столбцы, которые часто используются в WHERE, JOIN, ORDER BY, а не всё подряд. 🐸 Библиотека собеса по Java #sql
688
8
❓ В чём разница между @Component и @Bean? Оба регистрируют бин в контейнере, но по-разному: @Component (и специализации @Service, @Repository, @Controller) вешается на класс. Spring сам находит его при сканировании компонентов и создаёт бин. Подходит для своих классов, которые вы пишете сами. @Bean вешается на метод внутри @Configuration-класса. Вы вручную создаёте объект и возвращаете его. Это нужно, когда: → бин из чужой библиотеки, куда нельзя добавить аннотацию; → требуется нетривиальная логика конструирования; → нужно условно собрать разные реализации. 🐸 Библиотека собеса по Java #spring
788
9
❓ Как Spring разрешает циклические зависимости между бинами? Для синглтонов с внедрением через поля или сеттеры через кеш ранних ссылок (трёхуровневый кеш). Spring создаёт «сырой» экземпляр бина, кладёт раннюю ссылку на него до завершения инициализации, и второй бин в цикле получает эту ссылку, не дожидаясь полной готовности первого. А вот при внедрении через конструктор цикл разрешить нельзя: чтобы создать бин A, нужен готовый B, а чтобы создать B — готовый A. Результат — BeanCurrentlyInCreationException. Лучшее решение — устранить цикл, так как это обычно запах архитектуры. Как костыль — @Lazy на одной из зависимостей. 🐸 Библиотека собеса по Java #spring
922
10
⏰ Уже сегодня в 19:00 (МСК) стартует открытый урок! Тема: «Мультиагентные системы: почему большинство архитектур переусложнены» 🔥 За 90 минут разберёмся, когда действительно стоит строить мультиагентную систему, а когда она только добавляет сложность, расходы и новые точки отказа. Поговорим о критериях выбора архитектуры, типичных ошибках и ограничениях современных ИИ-агентов, которые важно учитывать ещё до внедрения в продукт. 🎙️ Спикер — Дмитрий Юдин, руководитель AI/ML-направления в Сloud․ru. 🎁 Для всех участников подготовили промокод на скидку 10 000 ₽ на курс «Разработка ИИ-агентов». 👉 Успей присоединиться к уроку
817
11
❓ Чем fail-fast итераторы отличаются от fail-safe? **Ответ:** **fail-fast** (`ArrayList`, `HashMap`) бросают `ConcurrentModificationException` при структурном изменении коллекции во время обхода. Механизм — счётчик `modCount`, который итератор сверяет на каждом шаге. Это способ быстро отловить баг, а не средство защиты. **fail-safe** (`CopyOnWriteArrayList`, `ConcurrentHashMap`) не бросают исключение: - `CopyOnWriteArrayList` при модификации копирует внутренний массив, итератор работает со «снимком» старого состояния; - итератор `ConcurrentHashMap` слабо-согласованный (weakly consistent) — отражает состояние на момент создания или позже, без жёстких гарантий. Fail-safe безопасны в многопоточке, но итератор может не видеть свежие изменения и обходятся дороже по памяти. 🐸 Библиотека собеса по Java #core
818
12
🔥 Чем больше агентов — тем лучше? Не всегда. Уже завтра поговорим о реальных ограничениях на открытом уроке «Мультиагентные
🔥 Чем больше агентов — тем лучше? Не всегда. Уже завтра поговорим о реальных ограничениях на открытом уроке «Мультиагентные системы: почему большинство архитектур переусложнены». Спикер — Дмитрий Юдин, руководитель AI/ML-направления в Сloud․ru. После урока вы: 🔹 будете лучше ориентироваться в выборе между одним агентом и мультиагентной системой; 🔹 поймёте, какие архитектурные ошибки встречаются чаще всего; 🔹 получите практические ориентиры для проектирования и внедрения агентных систем; 🔹 будете лучше понимать возможности и ограничения современных ИИ-агентов. 🗓️ 18 июня, 19:00 (МСК) ⏱️ 90 минут 👉 Зарегистрироваться и получить промокод на 10 000 ₽
794
13
❓ Почему @Transactional не срабатывает при вызове метода внутри того же класса? Потому что @Transactional работает через прокси. Spring оборачивает бин в прокси-объект, и транзакция открывается, когда вызов проходит через этот прокси извне. Если же метод класса вызывает другой @Transactional-метод того же класса напрямую (this.method()), вызов идёт мимо прокси — аннотация просто игнорируется, транзакция не открывается. Это называется self-invocation. Решения: - вынести транзакционный метод в отдельный бин; - инжектить ссылку на самого себя (self-injection) и вызывать через неё; - переключиться на AspectJ-режим вместо проксей. 🐸 Библиотека собеса по Java #spring
876
14
💬 Обратная связь Проверяем динамику роста комьюнити :) Ваш текущий грейд: 🔥 — Senior 👍🏼 — Middle ❤️ — Junior 😁 — Ещё учусь 🐸 Библиотека собеса по Java
893
15
🤖 Большинство материалов по ИИ-агентам устаревают быстрее, чем многие курсы успевают обновить программу Инструменты, подходы
🤖 Большинство материалов по ИИ-агентам устаревают быстрее, чем многие курсы успевают обновить программу Инструменты, подходы и фреймворки меняются постоянно. Поэтому важно не просто собрать демо-агента, а понимать архитектуру, ограничения и практики, которые используются в продакшене. 🚀 30 июня стартует курс «Разработка ИИ-агентов». ⏳ До 20 июня действует сниженная цена. За 8 недель под руководством практиков из бигтеха вы соберёте собственного AI-агента, который работает с API, использует память, подключается к внешним сервисам и решает реальную задачу. Что разберём: 🔹 архитектуру AI-агентов и надёжный вывод; 🔹 LangGraph и оркестрацию workflow; 🔹 MCP и работу с внешними инструментами; 🔹 RAG-системы; 🔹 AgentOps, observability и evals; 🔹 безопасность и защиту от prompt injection; 🔹 мультиагентные системы и A2A. На курсе отдельно разбираем вопросы надёжности, безопасности и контроля агентных систем. 👉 Узнать программу и забронировать место со скидкой
934
16
❓ Опишите жизненный цикл бина в Spring Основные этапы: 1. Создание экземпляра (вызов конструктора). 2. Внедрение зависимостей (поля/сеттеры). 3. Вызов Aware-интерфейсов (BeanNameAware, ApplicationContextAware и т. д.). 4. BeanPostProcessor.postProcessBeforeInitialization. 5. @PostConstruct. 6. afterPropertiesSet() (InitializingBean), затем кастомный init-метод. 7. BeanPostProcessor.postProcessAfterInitialization — здесь навешиваются прокси (AOP, @Transactional). 8. Бин готов к использованию. При завершении контекста: @PreDestroy → destroy() (DisposableBean) → кастомный destroy-метод. 🐸 Библиотека собеса по Java #spring
876
17
💻 3 курса по цене одного — собери стек для оффера в топовую IT-компанию Для следующего карьерного шага мало писать код. Рабо
💻 3 курса по цене одного — собери стек для оффера в топовую IT-компанию Для следующего карьерного шага мало писать код. Работодатели ждут не только знания языка, но и понимания архитектуры, алгоритмов, автоматизации, AI-инструментов и агентных систем. Одно направление закрывает только часть задачи. Поэтому сейчас мы предлагаем освоить сразу несколько востребованных навыков — выбери любой курс и получи доступ еще к двум бесплатно 🔥 Собери стек навыков под свою цель: 🔹 подготовка к сильным компаниям (алгоритмы, архитектура); 🔹 переход в AI-направление (ИИ-агенты, AgentOps); 🔹 развитие в ML и Data Science (математика, основы ML); 🔹 новый оффер и рост дохода. Полученные знания применяешь в работе уже во время обучения. ⏳ Акция действует 48 часов — 13 и 14 июня. 👉 Переходи на сайт, выбирай курсы и оставляй заявку — за 10 минут поможем собрать комплект под твою цель.
833
18
✔️ Java-тест: задачка с реального собеса Наш подписчик прислал реальную задачу с собеса в Яндекс. Сможете решить? 👇 📦 Задание Реализуйте банкомат и тесты к нему. Инициализируется набором купюр, умеет выдавать купюры под заданную сумму либо отвечать отказом. При выдаче купюры списываются с баланса. /** * Банкомат. * Инициализируется набором купюр, выдаёт купюры под сумму либо отказывает. * При выдаче купюры списываются с баланса. * * Номиналы: * - 50, 100, 500, 1000, 5000 ₽ * - 20, 100, 500 EUR * * Валюты обрабатываются раздельно, обмен не поддерживается. * Банкомат может использоваться многопоточно (резервирование выдачи). * Поддержку многопоточности можно вынести в отдельную итерацию. */ public class ATM { public ??? withdraw(???) { // TODO } } 📋 Требования — Сами определите, что withdraw принимает и что возвращает. — Валюты считаются раздельно, обмена нет. — Сумму, которую нельзя собрать имеющимися купюрами, отклоняем (частичная выдача недопустима). — Покройте решение тестами. — Бонус: сделайте безопасным для вызова из нескольких потоков. Ставьте → 🔥, если нравится формат. Если нет → 🌚 💬 Решения под спойлер. Сравним, какое будет лучше. 🐸 Библиотека собеса по Java #practise
2 447
19
❓ Чем отличаются HashMap, Hashtable и ConcurrentHashMap HashMap — не потокобезопасен, разрешает один null-ключ и null-значения, самый быстрый в однопоточном коде. Hashtable — legacy-класс, синхронизирован целиком: один лок на всю таблицу, поэтому в многопоточке работает медленно. Не допускает null. ConcurrentHashMap — потокобезопасен с тонкой блокировкой: с Java 8 синхронизация идёт на уровне отдельного бакета через CAS и synchronized, что даёт высокую конкурентность. null не допускает (чтобы не путать «нет ключа» и «значение null» при гонках). 🐸 Библиотека собеса по Java #core
911
20
❓ ArrayList или LinkedList? В подавляющем большинстве случаев → ArrayList. ArrayList — это динамический массив: доступ по индексу O(1), вставка/удаление в середине O(n) из-за сдвига элементов. Но на практике он почти всегда быстрее за счёт локальности данных в памяти и дружбы с кешем процессора. LinkedList — двусвязный список: вставка/удаление по уже найденной позиции O(1), но доступ по индексу O(n), и каждый элемент — отдельный объект с накладными расходами на ссылки. LinkedList оправдан редко — например, когда нужен Deque с частыми вставками в оба конца. Для обычного списка берите ArrayList. 🐸 Библиотека собеса по Java #core
992