ch
Feedback

不要被骗子欺骗!Telemetrio 会找到并标记这些频道 👉 如果想查看标记,请订阅

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

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

前往频道在 Telegram

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

显示更多
6 375
订阅者
-324 小时
-237 天
-5530 天
帖子存档
❓ Что такое starvation? Starvation (голодание) возникает, когда поток долго не получает доступ к ресурсу, потому что планировщик постоянно выбирает другие потоки. Например, если один поток работает с высоким приоритетом, а другой — с низким, второй может почти не выполняться. В Java это чаще всего связано с неправильным использованием синхронизации или очередей, где один поток постоянно перехватывает ресурсы. Решение — справедливые блокировки (ReentrantLock(true)), балансировка нагрузки, корректные политики планировщика. 🐸 Библиотека собеса по Java

💬 Обратная связь Хотели бы видеть в канале теги для навигации? Если большинство будет За, попробуем в тестовом формате. 🔥 — Да, введите теги по уровню вопроса 👍🏼 — Да, введите теги по теме вопроса ❤️ — Да, предложу в комменты идею для тегов 😁 — Всё равно, особых плюсов не вижу 🐸 Библиотека собеса по Java

❓ Что такое livelock? Livelock (живая блокировка) — ситуация, когда потоки не «зависают» в жёсткой блокировке, но бесконечно меняют своё состояние, мешая друг другу завершить работу. Классическая аналогия: два человека встречаются в узком коридоре, оба вежливо делают шаг в сторону, но одновременно — и так продолжается бесконечно. В коде это проявляется, когда потоки постоянно реагируют на изменения друг друга, но никто не достигает цели. 🐸 Библиотека собеса по Java

⚡️ Бесплатный вебинар — ИИ-агенты: новая фаза развития AI 24 сентября в 19:00 МСК состоится бесплатный вебинар с Максимом Шаланкиным — Data Science Team Lead в финтех-команде MWS, а познакомиться с ним ближе можно в его тг-канале. Тема:
«ИИ-агенты: новая фаза развития искусственного интеллекта».
На вебинаре разберёмся, почему агенты — это следующий шаг после ChatGPT, чем они отличаются от обычных моделей и как уже приносят бизнесу ROI до 80%. А дальше я покажу, как эта тема ложится в наш курс по ИИ-агентам, который разработан под руководством Никиты Зелинского. Подробности рассказываем в гс выше — включай, чтобы не пропустить.

❓ Что такое deadlock? Deadlock (взаимная блокировка) возникает, когда несколько потоков удерживают разные ресурсы и при этом ждут освобождения ресурса, который заблокирован другим потоком. В итоге ни один поток не может продолжить работу. Например: поток А захватил ресурс 1 и ждёт ресурс 2, а поток B — наоборот. JVM их не прерывает автоматически, и система может «замёрзнуть». Чтобы избегать deadlock, используют единый порядок захвата ресурсов, таймауты блокировок или более высокоуровневые примитивы (java.util.concurrent). 🐸 Библиотека собеса по Java

📅 24 сентября в 19:00 МСК — бесплатный вебинар с Максимом Шаланкиным. Тема: «ИИ-агенты: новая фаза развития искусственного интеллекта». 🔹 Почему все говорят про ИИ-агентов и куда вливаются миллиарды инвестиций. 🔹 Чем они отличаются от ChatGPT и обычных ботов. 🔹 Как работает цикл агента: восприятие → планирование → действие → обучение. 🔹 Живое демо простого агента. 🔹 Потенциал для бизнеса: автоматизация процессов и ROI до 80%. Не придёшь — будешь потом рассказывать, что «агенты — это как чат-боты», и ловить косые взгляды от коллег 😏 👉 Регистрируйтесь через форму на лендинге

❓ Что такое optimistic и pessimistic locking? Optimistic locking — подход, при котором предполагается, что конфликты редки. Обновление данных проверяется через версионное поле (например, @Version в JPA). Если два потока изменяют одну запись, тот, кто сохраняет изменения вторым, получит ошибку OptimisticLockException. Это дешево по ресурсам, но требует обработки ошибок при конфликте. Pessimistic locking — «жесткая блокировка»: при чтении или изменении данных сразу ставится блокировка на строку или таблицу (SELECT ... FOR UPDATE). Другие транзакции ждут, пока блокировка не освободится. Это надежнее в сценариях с высокой конкуренцией, но дороже по производительности и может приводить к дедлокам. 👉 На практике выбор зависит от нагрузки: при редких конфликтах лучше optimistic, при частых — pessimistic. 🐸 Библиотека собеса по Java

❓ Что делает аннотация @Transactional в Spring? @Transactional управляет транзакцией на уровне метода или класса. При вызове метода Spring открывает транзакцию, выполняет код, а затем: если метод завершился успешно — транзакция коммитится если возникло непроверяемое (runtime) исключение — транзакция откатывается Также можно тонко настроить поведение (какие исключения приводят к rollback, изоляцию транзакции, propagation и т. д.). В итоге эта аннотация упрощает работу с транзакциями: разработчик пишет бизнес-логику, а управление транзакциями берет на себя Spring. 🐸 Библиотека собеса по Java

❓ Для чего нужны профили в Spring? Профили используются для того, чтобы разделить конфигурацию приложения в зависимости от различных сред (например, development, testing, production). Это позволяет гибко настраивать приложение для разных условий, активируя или деактивируя определенные бины, конфигурации и зависимости в зависимости от активного профиля. Профили помогают избежать жесткой привязки к среде, упрощая тестирование и развертывание приложения. 🐸 Библиотека собеса по Java

❓ Что делает аннотация @Entity? Аннотация используется для обозначения класса как сущности, которая будет сопоставлена с таблицей в базе данных при использовании JPA (Java Persistence API). Класс, помеченный этой аннотацией, становится частью модели данных, и каждый его экземпляр будет соответствовать строкам в базе данных. Также важно, чтобы такой класс имел конструктор без параметров и корректно определял идентификатор сущности с помощью аннотации @Id. 🐸 Библиотека собеса по Java

💬 Обратная связь Как вы относитесь к формату постов в канале? 🔥 — Удобно, интересно 🤔 — Нейтрально 😁 — Неудобно (предложу что-то в комменты) 🐸 Библиотека собеса по Java

👀 Задача с собеса: Поиск наибольшей общей подпоследовательности (LCS) (mid+)
Найдите длину наибольшей общей подпоследовательности (LCS) двух строк: — Даны две строки A и B. — Нужно найти длину наибольшей общей подпоследовательности между ними.
▪️ Условия 1. Строки могут быть длиной до 1000 символов. 2. Используйте динамическое программирование для решения. 3. Подсчитайте длину LCS. 💡 Ключевые моменты — Используйте таблицу для хранения промежуточных результатов. — Если символы в строках совпадают, то прибавляйте 1 к предыдущему значению. Если не совпадают — выбирайте максимум из предыдущих значений. — Убедитесь, что алгоритм работает с большими строками за время O(n*m), где n и m — длины строк. 💬 Возможная реализация в комментариях. Пишите свои варианты и обсудим разные подходы. 🐸 Библиотека собеса по Java

❓ Каково внутреннее строение LinkedList? LinkedList реализован как двусвязный список. Каждый элемент хранится в отдельном объекте Node, который содержит: — Ссылку на значение (item) — Ссылку на предыдущий элемент (prev) — Ссылку на следующий элемент (next) Список хранит указатели на первый (first) и последний (last) элементы, а также размер (size). Это обеспечивает: — Быстрые операции добавления/удаления в начало и конец списка O(1) — Последовательный обход с помощью ссылок — Но медленный произвольный доступ по индексу — O(n), так как приходится проходить список от начала или конца 🐸 Библиотека собеса по Java

🔥 Последняя неделя перед стартом курса по AI-агентам Старт курса уже 15го числа! Если вы планировали вписаться — сейчас ПОСЛ
🔥 Последняя неделя перед стартом курса по AI-агентам Старт курса уже 15го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место На курсе: — разложим LLM по косточкам: токенизация, SFT, PEFT, инференс — соберём RAG и научимся оценивать его адекватно — построим настоящую мультиагентную систему — архитектуру, которая умеет расти — разберём CoPilot, сломаем через prompt injection (спасибо Максу) — и наконец, посмотрим, как это работает в MCP и реальных кейсах 📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API» Промокод на 5.000₽: LASTCALL 👉 Курс здесь

❓ Для чего нужен Component Scan в Spring? Component Scan в Spring используется для автоматического поиска и регистрации бинов в контексте приложения. Он сканирует пакеты и находит классы, аннотированные как компоненты (@Component, @Service, @Repository, @Controller и т.д.), после чего добавляет их в контекст Spring для последующего использования. Это позволяет избежать явной конфигурации бинов и упростить процесс их интеграции в приложение. 🐸 Библиотека собеса по Java

❓ Что вы знаете про Collection? Collection — это интерфейс в java.util, который задаёт общий контракт для всех коллекций, хранящих группы объектов. Через него определяются ключевые операции: добавление и удаление элементов, проверка их наличия, очистка коллекции, получение размера и итерация. Основные реализации — List, Set и Queue. Сам интерфейс не потокобезопасен, но его можно обернуть в синхронизированную версию через Collections.synchronizedCollection() или использовать классы из java.util.concurrent. Collection работает с дженериками, что обеспечивает типобезопасность и упрощает работу с элементами. Важно помнить, что Map не наследуется от Collection, так как представляет пары ключ–значение и имеет свою иерархию. 🐸 Библиотека собеса по Java

❓ Где лучше хранить пароль — в String или в массиве char[]? Лучше в char[]. String — это неизменяемый объект: пока его не уберёт GC, пароль будет висеть в памяти в открытом виде, и мы не можем его обнулить. С массивом символов можно безопасно работать: — Сразу после использования вызвать Arrays.fill(password, '\0') — Не хранить секреты дольше, чем нужно — Снизить риск утечки при дампе памяти или логировании 🐸 Библиотека собеса по Java

Иногда реально ощущение, что нас держат в Матрице. Большинство сидит, читает статьи про ML, смотрит ролики «как это работает»
Иногда реально ощущение, что нас держат в Матрице. Большинство сидит, читает статьи про ML, смотрит ролики «как это работает» — и всё. ❗ Сегодня последний день промокода Lastcall (−5000 ₽). Уже завтра стартует первый вебинар по Машинному обучению — полный набор для выхода из Матрицы. Кто готов вырваться из симуляции и ворваться в сезон найма? 👾 — я уже в команде Нео 👍 — хочу красную таблетку 🤔 — пока думаю, но интересно Забирай полный комплект для ML-разработки: Python + Математика + Машинное обучение. 🔥 Скидка 30% действует только до 9 сентября → забираем себе

❓ Что такое пул строк? Пул строк — это специальная область памяти в heap, где хранятся уникальные строковые литералы. При создании строки через String s = "hello", JVM проверяет, есть ли уже такая строка в пуле. Если есть, то возвращается ссылка на существующий объект, если нет, то создаётся новый и добавляется в пул. Это экономит память и ускоряет сравнение строк с помощью ==, так как строки из пула имеют одинаковую ссылку. Для добавления строки в пул вручную используют метод intern(). 🐸 Библиотека собеса по Java