Библиотека собеса по Java | вопросы с собеседований
Kanalga Telegram’da o‘tish
Вопросы с собеседований по Java и ответы на них. По рекламе: @proglib_adv Учиться у нас: clc.to/3wECtA Для обратной связи: @proglibrary_feeedback_bot
Ko'proq ko'rsatish6 463
Obunachilar
-224 soatlar
-57 kunlar
-1630 kunlar
Postlar arxiv
Repost from Библиотека девопса | DevOps, SRE, Sysadmin
🍇 18 основных паттернов микросервисной архитектуры
Рассказываем о паттернах, которые представляют собой набор проверенных решений типичных проблем и задач в микросервисной архитектуре. Их правильное применение может значительно улучшить масштабируемость и надежность системы.
Читать статью
Чем отличаются конструктор по-умолчанию, конструктор копирования и конструктор с параметрами?
У конструктора по умолчанию отсутствуют какие-либо аргументы. Конструктор копирования принимает в качестве аргумента уже существующий объект класса для последующего создания его клона. Конструктор с параметрами имеет в своей сигнатуре аргументы (обычно необходимые для инициализации полей класса).
Как отсортировать список строк с помощью лямбда-выражения?
Ответ на картинке.
Repost from Proglib.academy | IT-курсы
✅❌ За и против: становиться ли айтишником в 2024 году
В 2024 году IT-специалисты остаются на пике популярности. Но стоит ли вам становиться одним из них? Рассмотрим основные аргументы, чтобы понять, стоит ли вам становиться IT-специалистом в нашей статье.👇
🔗 Читать статью
✍️ «Библиотека программиста» находится в поиске автора на написание книжных рецензий
Кто нужен?
● Энтузиасты (джуны и выше), которые которые разбираются в IT
● Любители книг, которые хотели бы получать деньги за чтение и написание рецензий
● Работаем с самозанятыми (компенсируем налог), ИП
Мы предлагаем частичную занятость и полностью удаленный формат работы — можно совмещать с основной и находиться в любом месте🌴
✉️ Станьте частью нашей команды — присылайте резюме и примеры работ hello@proglib.io
Что такое литералы?
Литералы — это явно заданные значения в коде программы, константы определенного типа, которые находятся в коде в момент запуска.
В классе на картинке «Hello world!» — литерал, переменная a — тоже.
Литералы бывают разных типов, которые определяются их назначением и способом написания.
💵⚡ДАРИМ 40 000₽ ЗА ВИДЕО
Конкурс года в «Библиотеке программиста»: смонтируйте короткий вертикальный ролик формата Shorts/Reels* на тему программирования и разработки — лучший автор получит 40 тысяч рублей 🤑
Подробные условия:
➡️смонтируйте короткий смешной вертикальный ролик (можно и нужно использовать мемы)
➡️отправьте нам в бота @ProglibContest_bot
➡️лучшие ролики (по мнению редакции) мы будем выкладывать в канал и в наш инстаграм*
➡️тот, чей ролик соберет больше всего просмотров в инстаграм*, получит приз — 40 тысяч рублей
Какие ролики мы не принимаем:
😟не вашего авторства (проверим!)
😟длинные, не вертикальные, несмешные
Таймлайн:
2 августа — заканчиваем принимать видео
⬇️
3 августа — начинаем загружать лучшие видео в инстаграм
⬇️
9 августа — подводим итоги
*Организация Meta признана экстремистской в РФ
Жадный алгоритм
Жадный алгоритм (greedy algorithm) — это алгоритм, который на каждом шаге делает локально оптимальный выбор, в надежде, что итоговое решение будет оптимальным.
Алгоритм работает следующим образом:
Инициализируем minPrice максимальным значением. Затем перебираем все цены акций. На каждом шаге обновляем minPrice, если текущая цена меньше, чем minPrice, и maxProfit, если разница между текущей ценой и minPrice больше, чем maxProfit. Возвращаем maxProfit.
Жадные алгоритмы могут быть очень эффективными для решения некоторых задач. Однако важно помнить, что жадный алгоритм не всегда приводит к оптимальному решению.
Количество дней между датами
Иногда может понадобиться узнать количество дней, часов, минут и т.п. между датами. Рассмотрим один из способов нахождения дней между двумя датами выше в примере:
Неуязвимого кода не существует. Абсолютно защищённых данных – тоже.
Зато есть способы восстановить информацию после серьёзного сбоя или атаки.
Именно о способах восстановления повреждённых данных мы и поговорим на открытом вебинаре «Создаём бэкапы для Ethereum-блокчейна на Rust»
Вы познакомитесь с принципами хранения и развития данных в блокчейн-системах, увидите, как с помощью Rust эффективно переиспользовать код для разных задач на разных целевых платформах.
Вебинар проведёт Кирилл Федченко, опытный программист на Rust, Python, C++.
Будет интересно и Rust-разработчикам и тем, кто использует другие языки.
23 июля, 19:00 МСК
Бесплатно
➡ Записаться на событие: https://vk.cc/cyztUt
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576 Erid 2Vtzqw6bCkA
Использование entrySet для итерации по HashMap
Раньше я использовал keySet для итерации по HashMap, как показано ниже:
Set keySet = map.keySet();
for (Key k : keySet) {
Value v = map.get(k);
print(k, v);
}
➡️ Это выполняет дополнительный поиск для получения значения из Map, что в худшем случае может быть O(n). Если вам нужны и ключ, и значение, то лучше итерировать по entrySet, а не по keySet.
Set> entrySet = map.entrySet();
for (Map.Entry e : entrySet) {
Key k = e.getKey();
Value v = e.getValue();
}
✔️ Это более эффективно, потому что вы получаете значение напрямую из объекта, что всегда занимает O(1).
Ответьте на 3 вопроса, чтобы получить вводные занятия к курсу «Алгоритмы и структуры данных»
🔥Получите вводные занятия, ответив на 3 вопроса – https://proglib.io/w/154a13ad
На вводной части вас ждут:
1. Лекция «Производительность алгоритмов» от руководителя разработки Яндекс.Самокатов;
2. Лекция «Итеративные сортировки и линейные сортировки» от аспирант департамента искусственного интеллекта ВШЭ;
3. Практические задания после лекций;
4. Ссылки на дополнительные материалы для самостоятельного изучения.
⚡️Переходите и начинайте учиться уже сегодня – https://proglib.io/w/154a13ad
Опишите специальные коллекции для перечислений. Каковы преимущества их внедрения по сравнению с обычными коллекциями?
EnumSet и EnumMap — это специальные реализации интерфейсов Set и Map соответственно. Всегда стоит использовать эти реализации, когда имеете дело с перечислениями, потому что они очень эффективны.
EnumSet — это просто битовый вектор с «единицами» в позициях, соответствующих порядковым значениям перечислений, присутствующих в множестве. Чтобы проверить, находится ли значение перечисления в множестве, реализация просто должна проверить, является ли соответствующий бит в векторе «единицей», что является очень простой операцией. Точно так же EnumMap — это массив, доступ к которому осуществляется с помощью порядкового значения перечисления в качестве индекса. В случае с EnumMap нет необходимости вычислять хеш-коды или разрешать коллизии.
Repost from Proglib.academy | IT-курсы
🐛 5 признаков неопытного разработчика: как избежать типичных ошибок и ускорить профессиональный рост
Независимо от уровня теоретической подготовки, переход от обучения к реальной практике всегда сопряжен с множеством вызовов. Начинающие разработчики часто сталкиваются с рядом типичных проблем, которые могут существенно замедлить их профессиональный рост.
В этой статье мы рассмотрим наиболее распространенные проблемы, с которыми сталкиваются начинающие разработчики:
🔗 Читать статью
Delay Queue
DelayQueue — особый тип коллекции Java для сортировки элементов по времени задержки.
Принадлежит пакету java.util.concurrent, реализует интерфейс BlockingQueue. Элементы извлекаются только при истечении задержки. Для использования необходимо реализовать метод getDelay из интерфейса Delayed.
Допустим, мы хотим задержать элемент на 10 секунд. Нам просто нужно установить текущее время, увеличенное на 10 секунд для нашего класса DelayedEvent.
Расположите в виде иерархии следующие интерфейсы: List, Set, Map, SortedSet, SortedMap, Collection, Iterable, Iterator, NavigableSet, NavigableMap
Ответ на картинке.
Расположите в виде иерархии следующие интерфейсы: List, Set, Map, SortedSet, SortedMap, Collection, Iterable, Iterator, NavigableSet, NavigableMap
Ответ на картинке.
