cookie

Utilizamos cookies para mejorar tu experiencia de navegación. Al hacer clic en "Aceptar todo", aceptas el uso de cookies.

avatar

Java | Вопросы собесов

Разбираем вопросы с собеседований на Java разработчика. Spring, Hibernate Сайт: https://easyoffer.ru/ Реклама: https://telega.in/c/easy_java_ru Предложения: @easyoffer_adv

Mostrar más
Publicaciones publicitarias
8 663
Suscriptores
+8124 horas
+7437 días
+1 84130 días

Carga de datos en curso...

Tasa de crecimiento de suscriptores

Carga de datos en curso...

Что такое FailFast ? Спросят с вероятностью 12% Fail-Fast — это концепция, используемая в различных областях программирования и системном дизайне, согласно которой система должна немедленно сообщать об ошибке или несоответствии, как только они обнаружены. В контексте коллекций Java и итераторов, он относится к механизму быстрого выявления ошибок, который предотвращает дальнейшую работу с коллекцией, которая была структурно модифицирована после создания итератора, кроме как через сам итератор. Работа: Многие реализации интерфейсов коллекций из пакета java.util (например, ArrayList, HashSet) являются Fail-Fast. Это значит, что если после создания итератора для такой коллекции коллекция модифицируется (добавление, удаление элементов и т.п.) напрямую, не через методы итератора, то при попытке использования итератора будет выброшено исключение ConcurrentModificationException. Это исключение служит сигналом о том, что с состоянием коллекции были произведены операции, которые могут нарушить корректность работы итератора. Пример:
import java.util.*;

public class FailFastExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Java");
        list.add("C++");

        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String value = iterator.next();
            if (value.equals("Java")) {
                // Модификация коллекции во время итерации (не через итератор)
                list.remove(value); // Это вызовет ConcurrentModificationException
            }
        }
    }
}
Преимущества:Быстрое обнаружение ошибок: Он помогает быстро обнаружить ошибки изменения коллекции во время итерации, что облегчает отладку и предотвращает непредсказуемое поведение программы. ✅ Повышение надёжности: Программы становятся более надёжными, поскольку любые некорректные модификации коллекций быстро выявляются. Недостатки:Ограничения на модификацию: Во время итерации по коллекции ограничивается возможность её модификации, что может быть неудобно в некоторых сценариях. ❌ Не гарантирует полную безопасность: В многопоточных средах его механизмы не могут гарантировать полную безопасность и целостность данных, поскольку ConcurrentModificationException не обязательно будет выброшено в каждом случае конкурентной модификации. Fail-Fast механизмы коллекциях служат для раннего обнаружения ошибок и повышения надёжности программ. Они полезны для отладки и предотвращения сложных в обнаружении ошибок из-за неправильного использования коллекций. Однако в многопоточных средах для управления конкурентным доступом к коллекциям следует использовать специальные потокобезопасные коллекции из пакета java.util.concurrent, такие как ConcurrentHashMap. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1715 вопроса на Java разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых
Mostrar todo...
👍 11 2
00:21
Video unavailableShow in Telegram
Cамый простой способ изучить Java — залезть в голову профи Один из лучших айтишников России учит базе кодинга в Telegram. Даже гуманитарий поймёт, как создавать приложения, сайты, игры и чат-боты. Достаточно подписаться на «Секреты Java», где каждый день появляются гайды, готовые примеры кода и лучших практик. И всё это бесплатно — вместо сотен тысяч рублей за курсы. Стартовать в прибыльной профессии с нуля вы сможете гораздо проще! Теперь обучиться Java может каждый: @java_secrets
Mostrar todo...
видео Антон.MOV2.76 MB
👍 4 2🤯 1👾 1
Какой механизм лучше всего использовать для обработки результатов выполнения нескольких асинхронных задач, выполненных в различных потоках?Anonymous voting
  • volatile переменные
  • CountDownLatch
  • ExecutorService.invokeAll()
  • synchronized блоки
0 votes
👍 13
Чем отличается where от having ? Спросят с вероятностью 19% WHERE и HAVING используются для фильтрации записей, но они применяются на разных этапах выполнения запроса и имеют разные цели. WHERE - Применяется до агрегации данных. Это значит, что фильтрация происходит непосредственно на строках исходной таблицы или результата объединения таблиц, до того как произойдет любая операция группировки (GROUP BY) или агрегирования (SUM, COUNT, AVG и т.д.). - Используется для фильтрации строк, которые будут включены в результаты группировки или в финальный набор данных, если группировка не используется. - Не может использоваться для фильтрации агрегированных значений.
SELECT employee_id, SUM(salary)
FROM salaries
WHERE salary > 1000
GROUP BY employee_id;
В этом примере он фильтрует строки, где зарплата больше 1000, до того, как произойдет агрегация данных по employee_id. HAVING - Применяется после агрегации данных. Это означает, что фильтрация происходит уже на агрегированных результатах, полученных после применения GROUP BY и агрегатных функций. - Используется для фильтрации групп в результате запроса с группировкой. - Может использоваться только с GROUP BY или для фильтрации результатов, полученных с помощью агрегатных функций.
SELECT employee_id, SUM(salary)
FROM salaries
GROUP BY employee_id
HAVING SUM(salary) > 10000;
В этом примере он фильтрует группы, где суммарная зарплата по employee_id больше 10000, после того как данные были сгруппированы и агрегированы. Основные отличия - Момент применения: WHERE применяется до агрегации, HAVING — после. - Цель использования: WHERE фильтрует строки, HAVING фильтрует группы или агрегированные значения. - Условия использования: WHERE может использоваться в любом запросе, HAVING обычно используется с GROUP BY или для фильтрации агрегированных значений. Эти различия делают WHERE и HAVING специализированными инструментами для разных этапов и целей фильтрации данных. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1715 вопроса на Java разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых
Mostrar todo...
👍 27
Photo unavailableShow in Telegram
Как java-разработчику стать мидлом в бигтехе? Приходи на интенсив в Открытые школы Т1! 🎓Открытые школы Т1 — это бесплатная карьерная программа для IТ-специалистов с опытом от года, объединяющая обучение без отрыва от работы и offer weeks. Лучшие выпускники Открытых школ получают оффер в команду Т1 и присоединяются к командам финтех-разработки, разработки ИТ-продуктов, облачных сервисов, развития ИИ-решений, интеграции и консалтинга.  ⌛️ Длительность: 1 месяц. 💻 Формат: онлайн по вечерам (от 8 часов в неделю на вебинары и практику). Готов к вызову? Тогда подавай заявку до 21 июня! Т1 — крупнейшая ИТ-компания в России по версии RAEX 2023 и партнёр ключевых производителей и разработчиков в сфере IT. Реклама. ООО "Т1". ИНН 7720484492.
Mostrar todo...
👍 6🤔 1
Как HashMap в Java обрабатывает коллизии, когда два разных ключа имеют одинаковый хэш-код?Anonymous voting
  • HashMap заменит старое значение новым.
  • Возникнет ошибка времени выполнения.
  • Оба значения будут сохранены в одной корзине (bucket) как список.
  • Второй ключ будет игнорироваться.
0 votes
👍 10 1
Что можно сказать о скоростях доступа к элементам в HashMap при выполнении базовых операций ? Спросят с вероятностью 12% HashMap — это структура данных, использующая хэш-таблицу для хранения пар "ключ-значение". Она позволяет выполнять базовые операции, такие как вставка, поиск и удаление элементов, с высокой эффективностью. Основные аспекты скорости доступа к элементам в нем зависят от нескольких факторов, включая хэш-функцию, размер массива и обработку коллизий. Сложность операций 1️⃣ Вставка (put): В идеальном случае, когда коллизий нет, вставка происходит за константное время O(1). Однако в случае коллизий, когда несколько ключей имеют одинаковый хэш-код и попадают в одну и ту же "корзину" или "слот" хэш-таблицы, время вставки может увеличиваться из-за необходимости обработки этих коллизий. В Java 8 и более поздних версиях при большом количестве коллизий в одной корзине список преобразуется в сбалансированное дерево, что позволяет вставку выполнять за логарифмическое время O(log n) в худшем случае. 2️⃣ Поиск по ключу (get): Как и в случае с операцией вставки, поиск в идеальных условиях выполняется за O(1). Если же происходят коллизии, и ключи организованы в связанный список или дерево внутри одной корзины, время поиска может возрасти до O(n) в худшем случае для связанного списка и до O(log n) для сбалансированного дерева (в Java 8 и более поздних версиях). 3️⃣ Удаление (remove): Скорость удаления элемента аналогична скорости вставки и поиска. В лучшем случае она составляет O(1), но может увеличиваться до O(n) или O(log n) в случае обработки коллизий, в зависимости от структуры данных, используемой для хранения элементов в одной корзине. Факторы, влияющие на производительностьФункция хэширования: Качество функции хэширования напрямую влияет на распределение элементов по корзинам хэш-таблицы и, соответственно, на количество коллизий. Хорошая хэш-функция обеспечивает равномерное распределение ключей и минимизирует коллизии. ✅ Начальный размер и коэффициент загрузки: Начальный его размер и коэффициент загрузки (load factor) также влияют на производительность. Коэффициент загрузки — это мера, при достижении которой происходит автоматическое увеличение размера хэш-таблицы. Правильный выбор этих параметров может помочь уменьшить количество коллизий и увеличить скорость доступа к элементам. HashMap обеспечивает эффективный доступ к элементам для базовых операций, таких как вставка, поиск и удаление, в большинстве случаев работая за константное время O(1). Однако в худшем случае, когда происходят коллизии, производительность может снижаться, особенно если не используются улучшения, введённые. Правильная настройка и использование HashMap помогают максимизировать её производительность и эффективность в различных сценариях использования. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1715 вопроса на Java разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых
Mostrar todo...
👍 12 1
Photo unavailableShow in Telegram
Изучи алгоритмы, чтобы работать в Яндекс или Google Приходи на бесплатное обучение от FAANG School. Там ты узнаешь: – Как использовать разные структуры данных при решении задач – Какие 20% усилий дают 80% результата при подготовке к алгоритмам – Prefix Sum и Sliding Window. 2 подхода, которые закрывают задачи на 200к$ во время собесов в Google – Как научиться решать алгоритмы без матана Спикер – Разработчик из BigTech. За 7 лет решил 500 задач на LeetCode, прошел 30 собеседований в компаниях уровня Google и Meta, а сейчас работает в одной из крупных IT-гигантов в мире. Переходи и жми на кнопку «Принять участие», чтобы начать обучение.
Mostrar todo...
😁 15🤔 2👾 1
Какая область памяти JVM отвечает за хранение структур данных, используемых для управления потоками выполнения?Anonymous voting
  • Heap
  • Method Area
  • Java Stacks
  • Native Method Stacks
0 votes
🔥 13
Почему Map стоит особняком в иерархии коллекций ? Спросят с вероятностью 19% Интерфейс Map занимает особое место в иерархии коллекций и, строго говоря, не является частью Collection Framework. Основная причина этого заключается в том, что он работает с парами "ключ-значение", а не с индивидуальными элементами, как это делают коллекции, такие как List, Set, и т.д., которые хранят только объекты. Основные отличия от других коллекций: 1️⃣ Пары ключ-значение: Хранит данные в виде пар "ключ-значение", где каждый ключ уникален, и каждому ключу соответствует ровно одно значение. В коллекциях, таких как List или Set, хранятся только отдельные объекты. 2️⃣ Уникальные ключи: В отличие от списков, где элементы могут дублироваться, в нем каждый ключ уникален, и попытка вставить в него новую пару "ключ-значение" с уже существующим ключом приведет к замене старого значения новым. 3️⃣ Доступ к элементам: Доступ к его элементам осуществляется по ключу, а не по индексу. В коллекциях, таких как List, доступ к элементам осуществляется по индексу. 4️⃣ Не реализует интерфейс Collection: Поскольку он работает с парами "ключ-значение" и имеет уникальные операции и поведение, не совместимые с интерфейсом Collection, он не включается в иерархию коллекций как его часть. 5️⃣ Итерация: Итерация по нему отличается от итерации по другим коллекциям. Для перебора его элементов можно использовать набор ключей (keySet()), коллекцию значений (values()) или набор пар "ключ-значение" (entrySet()). 6️⃣ Функциональность: Предоставляет уникальные методы, такие как put(), get(), remove() по ключу, которые не имеют прямых аналогов в других типах коллекций. Из-за этих особенностей Map считается отдельной частью структуры данных, предназначенной для работы с ассоциативными массивами, где каждому ключу соответствует значение. Это делает Map идеальным инструментом для таких задач, как представление словарей, кэширование объектов и других ситуаций, где необходимо эффективно находить объект по уникальному идентификатору. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1715 вопроса на Java разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых
Mostrar todo...
👍 26 2
Elige un Plan Diferente

Tu plan actual sólo permite el análisis de 5 canales. Para obtener más, elige otro plan.