#вопросы_с_собеседований
Как устроен HashMap?
Как устроен HashMap?
HashMap
состоит из «корзин» (bucket)
. С технической точки зрения «корзины» — это элементы массива, которые хранят ссылки на списки элементов. При добавлении новой пары «ключ-значение», вычисляет хэш-код ключа, на основании которого вычисляется номер корзины (номер ячейки массива), в которую попадет новый элемент. Если корзина пустая, то в нее сохраняется ссылка на вновь добавляемый элемент, если же там уже есть элемент, то происходит последовательный переход по ссылкам между элементами в цепочке, в поисках последнего элемента, от которого и ставится ссылка на вновь добавленный элемент. Если в списке был найден элемент с таким же ключом, то он заменяется.👨🏻🎓📅 Работа на лето: куда устроиться студенту. Стажировки и не только
Лето – пора не только отдохнуть, но и немного подзаработать. Рассказываем о самых интересных вариантах для студентов.
https://proglib.io/sh/tUySmaKHWz
Лето – пора не только отдохнуть, но и немного подзаработать. Рассказываем о самых интересных вариантах для студентов.
https://proglib.io/sh/tUySmaKHWz
❓ Пройди тест на знание алгоритмов и структур данных
Давай проверим, насколько хорошо ты разбираешься в алгоритмах, и не пора ли подтянуть знания. Всего 10 несложных вопросов 😉
https://proglib.io/w/788fb64b
Давай проверим, насколько хорошо ты разбираешься в алгоритмах, и не пора ли подтянуть знания. Всего 10 несложных вопросов 😉
https://proglib.io/w/788fb64b
❓ Зачем разработчику знать алгоритмы и структуры данных?
Рассказываем о преимуществах, которые дает хорошее знание алгоритмов, о том, что именно нужно изучить в первую очередь, и как проходит алгоритмическая секция в техническом собеседовании.
https://proglib.io/sh/OviLp0g4qz
Рассказываем о преимуществах, которые дает хорошее знание алгоритмов, о том, что именно нужно изучить в первую очередь, и как проходит алгоритмическая секция в техническом собеседовании.
https://proglib.io/sh/OviLp0g4qz
⁉️👀 Делаете первые шаги в программировании? Собираетесь стать успешным разработчиком?
Тогда не пропустите бесплатный вебинар от Proglib Academy!
🚀 "Основы алгоритмов для разработчиков" 15 июня в 19:00
На вебинаре вы узнаете:
Что такое алгоритмы, их свойства и различия;
Почему алгоритмы важны для любого разработчика;
Как сравнивают алгоритмы;
Как легко решать алгоритмы.
А также рассмотрите задачи с линейными алгоритмами, а мы покажем примеры решения.
Спикер: Мария Горденко, инженер-программист, старший преподаватель ФКН НИУ ВШЭ, НИТУ МИСИС, аспирант департамента анализа данных и искусственного интеллекта ФКН НИУ ВШЭ.
👉 Записаться на вебинар: https://proglib.io/w/e6e548bb
Тогда не пропустите бесплатный вебинар от Proglib Academy!
🚀 "Основы алгоритмов для разработчиков" 15 июня в 19:00
На вебинаре вы узнаете:
Что такое алгоритмы, их свойства и различия;
Почему алгоритмы важны для любого разработчика;
Как сравнивают алгоритмы;
Как легко решать алгоритмы.
А также рассмотрите задачи с линейными алгоритмами, а мы покажем примеры решения.
Спикер: Мария Горденко, инженер-программист, старший преподаватель ФКН НИУ ВШЭ, НИТУ МИСИС, аспирант департамента анализа данных и искусственного интеллекта ФКН НИУ ВШЭ.
👉 Записаться на вебинар: https://proglib.io/w/e6e548bb
#вопросы_с_собеседований
Какое начальное количество корзин в HashMap?
В конструкторе по умолчанию - 16, используя конструкторы с параметрами можно задавать произвольное начальное количество корзин.
Какое начальное количество корзин в HashMap?
В конструкторе по умолчанию - 16, используя конструкторы с параметрами можно задавать произвольное начальное количество корзин.
#вопросы_с_собеседований
Возможна ли ситуация, когда HashMap выродится в список даже с ключами имеющими разные hashCode()?
Это возможно в случае, если метод, определяющий номер корзины будет возвращать одинаковые значения.
Возможна ли ситуация, когда HashMap выродится в список даже с ключами имеющими разные hashCode()?
Это возможно в случае, если метод, определяющий номер корзины будет возвращать одинаковые значения.
В этом выпуске #JEPCafe José Paumard, которого мы что-то давно не видели, рассказывает про:
- что такое preview features (как их использовать)
- что такое Virtual Threads (для чего они нужны)
- многое другое про многопоточность
- что такое preview features (как их использовать)
- что такое Virtual Threads (для чего они нужны)
- многое другое про многопоточность
YouTube
Java 19 Virtual Threads - JEP Café #11
JavaOne is back! ➱ https://oracle.com/javaone
What are virtual threads, the new model for threads, added to the JDK 19 as a preview feature by the Loom project.
⎯⎯⎯⎯⎯⎯ Chapters ⎯⎯⎯⎯⎯⎯
0:00 Intro
0:42 What are preview features, and how you can use them…
What are virtual threads, the new model for threads, added to the JDK 19 as a preview feature by the Loom project.
⎯⎯⎯⎯⎯⎯ Chapters ⎯⎯⎯⎯⎯⎯
0:00 Intro
0:42 What are preview features, and how you can use them…
🌳 Деревья и графы: что это такое и почему их обязательно нужно знать каждому программисту
В этой части материала мы рассмотрим деревья и графы, а также теорию, которая стоит за ними. Выполним реализацию на языке Python и покажем, как можно использовать эти понятия на примере челленджей Leetcode.
https://proglib.io/sh/g5JNoak9mY
В этой части материала мы рассмотрим деревья и графы, а также теорию, которая стоит за ними. Выполним реализацию на языке Python и покажем, как можно использовать эти понятия на примере челленджей Leetcode.
https://proglib.io/sh/g5JNoak9mY
🔥 Как Java-разработчику решить задачу на собеседовании в FinTech компанию?
Разберем 21 июня на Live coding сессии, где в прямом эфире решим задачу, которую дают в международных FinTech компаниях.
В прямом эфире Роман Оборин, Senior Java Developer в BNP Paribas и преподаватель курса Middle Java Dev, проведет Live coding сессию по написанию объектно-ориентированного кода на Java, покрытого разными типами тестов: Unit, Integration, Stress.
На Live сoding ты сможешь понаблюдать, как пишет код Senior-разработчик, прокомментировать процесс и решить реальную задачу, которую дают на собеседованиях. Ну и конечно, прокачаешь свои hard skills:
— Структурируешь знания по принципам SOLID
— Прокачаешь знания по разным видам тестирования, в том числе многопоточных программ
— Подготовишься к техническому интервью с этапом Live coding
🚀 Стартуем 21 июня в 19:00 по мск
Регистрируйся бесплатно: https://cutt.ly/eJ8Sdvb
Разберем 21 июня на Live coding сессии, где в прямом эфире решим задачу, которую дают в международных FinTech компаниях.
В прямом эфире Роман Оборин, Senior Java Developer в BNP Paribas и преподаватель курса Middle Java Dev, проведет Live coding сессию по написанию объектно-ориентированного кода на Java, покрытого разными типами тестов: Unit, Integration, Stress.
На Live сoding ты сможешь понаблюдать, как пишет код Senior-разработчик, прокомментировать процесс и решить реальную задачу, которую дают на собеседованиях. Ну и конечно, прокачаешь свои hard skills:
— Структурируешь знания по принципам SOLID
— Прокачаешь знания по разным видам тестирования, в том числе многопоточных программ
— Подготовишься к техническому интервью с этапом Live coding
🚀 Стартуем 21 июня в 19:00 по мск
Регистрируйся бесплатно: https://cutt.ly/eJ8Sdvb
#вопросы_с_собеседований
Какова роль equals() и hashCode() в HashMap?
Какова роль equals() и hashCode() в HashMap?
hashCode
позволяет определить корзину для поиска элемента, а equals
используется для сравнения ключей элементов в списке корзины и искомого ключа.#вопросы_с_собеседований
Какое худшее время работы метода get(key) для ключа, который есть в HashMap?
Какое худшее время работы метода get(key) для ключа, который есть в HashMap?
O(N)
. Худший случай - это поиск ключа в HashMap
, вырожденного в список по причине совпадения ключей по hashCode()
и для выяснения хранится ли элемент с определённым ключом может потребоваться перебор всего списка.#вопросы_с_собеседований
Сколько переходов происходит в момент вызова HashMap.get(key) по ключу, который есть в таблице?
• ключ равен
• любой ключ отличный от
Сколько переходов происходит в момент вызова HashMap.get(key) по ключу, который есть в таблице?
• ключ равен
null: 1
- выполняется единственный метод getForNullKey()
.• любой ключ отличный от
null: 4
- вычисление хэш-кода ключа; определение номера корзины; поиск значения; возврат значения.📐 10 алгоритмов для работы с графами, которые должен знать каждый кодер
Знакомимся с десятью маст-хэв для каждого кодера алгоритмами, которые будут полезными для работы с графами (исходный код прилагается).
https://proglib.io/sh/LpZb98VWRM
Знакомимся с десятью маст-хэв для каждого кодера алгоритмами, которые будут полезными для работы с графами (исходный код прилагается).
https://proglib.io/sh/LpZb98VWRM
Конференция JPoint 2022 на день вернется в офлайн 24 июня.
Для всех, кто соскучился по живому общению с единомышленниками, команда JPoint сделала отдельный офлайн-день.
В теплом ламповом офлайне вас ждут:
✔ Доклады о фреймворках, тестировании на Java, архитектуре, многопоточности и не только.
✔ Дискуссии с участием спикеров после каждого доклада (вживую, а не в Zoom!).
✔ Круглые столы о JVM, Data Engineering в Java и собеседованиях разработчиков.
✔ Партнерские стенды с мини-докладами и возможностью получить мерч.
✔ Живое общение с единомышленниками.
📍Санкт-Петербург, Park Inn by Radisson Pulkovskaya, 24 июня
Вместе с билетом на офлайн-день вы получите доступ к записям более чем 30 докладов и других активностей с онлайн-части конференции.
Подробности, полную программу и билеты вы можете найти по ссылке.
Если покупаете билет за свой счет (а не за счет компании), то воспользуйтесь промокодом для получения скидки:
Для всех, кто соскучился по живому общению с единомышленниками, команда JPoint сделала отдельный офлайн-день.
В теплом ламповом офлайне вас ждут:
✔ Доклады о фреймворках, тестировании на Java, архитектуре, многопоточности и не только.
✔ Дискуссии с участием спикеров после каждого доклада (вживую, а не в Zoom!).
✔ Круглые столы о JVM, Data Engineering в Java и собеседованиях разработчиков.
✔ Партнерские стенды с мини-докладами и возможностью получить мерч.
✔ Живое общение с единомышленниками.
📍Санкт-Петербург, Park Inn by Radisson Pulkovskaya, 24 июня
Вместе с билетом на офлайн-день вы получите доступ к записям более чем 30 докладов и других активностей с онлайн-части конференции.
Подробности, полную программу и билеты вы можете найти по ссылке.
Если покупаете билет за свой счет (а не за счет компании), то воспользуйтесь промокодом для получения скидки:
javaproglib2022JRGpc
#вопросы_с_собеседований
Что такое busy spin?
Что такое busy spin?
busy spin
– это техника, которую программисты используют, чтобы заставить поток ожидать при определённом условии. В отличие от традиционных методов wait()
, sleep()
или yield()
, которые подразумевают уступку процессорного времени, этот метод вместо уступки выполняет пустой цикл. Это необходимо для того, чтобы сохранить кэш процессора, т.к. в многоядерных системах существует вероятность, что приостановленный поток продолжит своё выполнение уже на другом ядре, а это повлечет за собой перестройку состояния процессорного кэша, которая является достаточно затратной процедурой.#вопросы_с_собеседований
Что такое «денормализация»? Для чего она применяется?
Денормализация базы данных — это процесс осознанного приведения базы данных к виду, в котором она не будет соответствовать правилам нормализации. Обычно это необходимо для повышения производительности и скорости извлечения данных за счет увеличения избыточности данных.
Что такое «денормализация»? Для чего она применяется?
Денормализация базы данных — это процесс осознанного приведения базы данных к виду, в котором она не будет соответствовать правилам нормализации. Обычно это необходимо для повышения производительности и скорости извлечения данных за счет увеличения избыточности данных.
Telegram
Библиотека джависта
Нормализация - это процесс преобразования отношений базы данных к виду, отвечающему нормальным формам (пошаговый, обратимый процесс замены исходной схемы другой схемой, в которой наборы данных имеют более простую и логичную структуру).
Нормализация предназначена…
Нормализация предназначена…
#вопросы_с_собеседований
Как и когда происходит увеличение количества корзин в HashMap?
Помимо
Как и когда происходит увеличение количества корзин в HashMap?
Помимо
capacity
у HashMap
есть еще поле loadFactor
, на основании которого, вычисляется предельное количество занятых корзин capacity * loadFactor
. По умолчанию loadFactor = 0.75
. По достижению предельного значения, число корзин увеличивается в 2 раза и для всех хранимых элементов вычисляется новое «местоположение» с учетом нового числа корзин.#вопросы_с_собеседований
Объясните смысл параметров в конструкторе HashMap(int initialCapacity, float loadFactor).
• initialCapacity - исходный размер
• loadFactor - коэффициент заполнения
Объясните смысл параметров в конструкторе HashMap(int initialCapacity, float loadFactor).
• initialCapacity - исходный размер
HashMap
, количество корзин в хэш-таблице в момент её создания.• loadFactor - коэффициент заполнения
HashMap
, при превышении которого происходит увеличение количества корзин и автоматическое перехэширование. Равен отношению числа уже хранимых элементов в таблице к её размеру.#вопросы_с_собеседований
Сколько элементов будет пропущено, если Iterator.next() будет вызван после 10-ти вызовов Iterator.hasNext()?
Нисколько -
Сколько элементов будет пропущено, если Iterator.next() будет вызван после 10-ти вызовов Iterator.hasNext()?
Нисколько -
hasNext()
осуществляет только проверку наличия следующего элемента.