#вопросы_с_собеседований
Назовите основные характеристики шаблонов.
Назовите основные характеристики шаблонов.
Имя - все шаблоны имеют уникальное имя, служащее для их идентификации;
Назначение данного шаблона;
Задача - задача, которую шаблон позволяет решить;
Способ решения - способ, предлагаемый в шаблоне для решения задачи в том контексте, где этот шаблон был найден;
Участники - сущности, принимающие участие в решении задачи;
Следствия - последствия от использования шаблона как результат действий, выполняемых в шаблоне;
Реализация - возможный вариант реализации шаблона.
Назначение данного шаблона;
Задача - задача, которую шаблон позволяет решить;
Способ решения - способ, предлагаемый в шаблоне для решения задачи в том контексте, где этот шаблон был найден;
Участники - сущности, принимающие участие в решении задачи;
Следствия - последствия от использования шаблона как результат действий, выполняемых в шаблоне;
Реализация - возможный вариант реализации шаблона.
#вопросы_с_собеседований
Какие типы классов бывают в java?
Какие типы классов бывают в java?
☕️ Top level class (Обычный класс):
Abstract class (Абстрактный класс);
Final class (Финализированный класс).
☕️ Interfaces (Интерфейс).
☕️ Enum (Перечисление).
☕️ Nested class (Вложенный класс):
Static nested class (Статический вложенный класс);
Member inner class (Простой внутренний класс);
Local inner class (Локальный класс);
Anonymous inner class (Анонимный класс).
Abstract class (Абстрактный класс);
Final class (Финализированный класс).
☕️ Interfaces (Интерфейс).
☕️ Enum (Перечисление).
☕️ Nested class (Вложенный класс):
Static nested class (Статический вложенный класс);
Member inner class (Простой внутренний класс);
Local inner class (Локальный класс);
Anonymous inner class (Анонимный класс).
#вопросы_с_собеседований
В чем разница между HashMap и WeakHashMap? Для чего используется WeakHashMap?
В чем разница между HashMap и WeakHashMap? Для чего используется WeakHashMap?
В Java существует 4 типа ссылок: сильные (strong reference), мягкие (SoftReference), слабые (WeakReference) и фантомные (PhantomReference). Особенности каждого типа ссылок связаны с работой Garbage Collector. Если объект можно достичь только с помощью цепочки WeakReference (то есть на него отсутствуют сильные и мягкие ссылки), то данный объект будет помечен на удаление.
WeakHashMap - это структура данных, реализующая интерфейс Map и основанная на использовании WeakReference для хранения ключей. Таким образом, пара «ключ-значение» будет удалена из WeakHashMap, если на объект-ключ более не имеется сильных ссылок.
В качестве примера использования такой структуры данных можно привести следующую ситуацию: допустим имеются объекты, которые необходимо расширить дополнительной информацией, при этом изменение класса этих объектов нежелательно либо невозможно. В этом случае добавляем каждый объект в WeakHashMap в качестве ключа, а в качестве значения - нужную информацию. Таким образом, пока на объект имеется сильная ссылка (либо мягкая), можно проверять хэш-таблицу и извлекать информацию. Как только объект будет удален, то WeakReference для этого ключа будет помещен в ReferenceQueue и затем соответствующая запись для этой слабой ссылки будет удалена из WeakHashMap.
WeakHashMap - это структура данных, реализующая интерфейс Map и основанная на использовании WeakReference для хранения ключей. Таким образом, пара «ключ-значение» будет удалена из WeakHashMap, если на объект-ключ более не имеется сильных ссылок.
В качестве примера использования такой структуры данных можно привести следующую ситуацию: допустим имеются объекты, которые необходимо расширить дополнительной информацией, при этом изменение класса этих объектов нежелательно либо невозможно. В этом случае добавляем каждый объект в WeakHashMap в качестве ключа, а в качестве значения - нужную информацию. Таким образом, пока на объект имеется сильная ссылка (либо мягкая), можно проверять хэш-таблицу и извлекать информацию. Как только объект будет удален, то WeakReference для этого ключа будет помещен в ReferenceQueue и затем соответствующая запись для этой слабой ссылки будет удалена из WeakHashMap.
#вопросы_с_собеседований
Даны 3 потока: Т1, Т2 и Т3. Как реализовать выполнение в последовательности Т1, Т2, Т3?
Даны 3 потока: Т1, Т2 и Т3. Как реализовать выполнение в последовательности Т1, Т2, Т3?
Декабрьский интенсив по SRE🦎
Формат: онлайн-интенсив (Zoom, записи занятий, git, стенды для практики, техподдержка и помощь спикеров).
На интенсиве разбираем SRE-подход к разработке и эксплуатации высоконагруженного сайта:
✔️будем настраивать и поддерживать сайт из нескольких микросервисов.
✔️сформулируем показатели SLO, SLI, SLA, разработаем архитектуру и инфраструктуру, соберем, протестируем и задеплоим сайт, настроим мониторинг и алертинг.
✔️определим причины ухудшения SLO, разберем устойчивость, error budget, практику тестирования, управление прерываниями и операционной нагрузкой.
✔️проработаем порядок действий в случае аварии.
✔️примем решения по дальнейшему предотвращению инцидентов.
Дата интенсива: 11–13 декабря 2020
Программа и регистрация на сайте - https://slurm.club/2HOUErw
Формат: онлайн-интенсив (Zoom, записи занятий, git, стенды для практики, техподдержка и помощь спикеров).
На интенсиве разбираем SRE-подход к разработке и эксплуатации высоконагруженного сайта:
✔️будем настраивать и поддерживать сайт из нескольких микросервисов.
✔️сформулируем показатели SLO, SLI, SLA, разработаем архитектуру и инфраструктуру, соберем, протестируем и задеплоим сайт, настроим мониторинг и алертинг.
✔️определим причины ухудшения SLO, разберем устойчивость, error budget, практику тестирования, управление прерываниями и операционной нагрузкой.
✔️проработаем порядок действий в случае аварии.
✔️примем решения по дальнейшему предотвращению инцидентов.
Дата интенсива: 11–13 декабря 2020
Программа и регистрация на сайте - https://slurm.club/2HOUErw
❓ Можно ли заменить настольный компьютер на Raspberry Pi 4?
В этой статье познакомимся с Raspberry Pi 4 и ответим на вопрос, сможет ли «Малина» заменить десктоп. Спойлер: на 90% – нет.
https://proglib.io/sh/WEJoq7CyFV
В этой статье познакомимся с Raspberry Pi 4 и ответим на вопрос, сможет ли «Малина» заменить десктоп. Спойлер: на 90% – нет.
https://proglib.io/sh/WEJoq7CyFV
Spring Security in Action (2020)
Автор: Laurentiu Spilca
Количество страниц: 560
Автор показывает, как предотвратить атаки с использованием межсайтовых скриптов и подделки запросов до того, как они нанесут ущерб. Вы начнете с основ, моделируя обновление паролей и добавляя несколько типов авторизации. По мере роста ваших навыков вы адаптируете Spring к новым архитектурам и создадите расширенные конфигурации OAuth2. К концу работы с книгой у вас будет настроенная конфигурация, которая защитит от угроз.
Скачать книгу
Автор: Laurentiu Spilca
Количество страниц: 560
Автор показывает, как предотвратить атаки с использованием межсайтовых скриптов и подделки запросов до того, как они нанесут ущерб. Вы начнете с основ, моделируя обновление паролей и добавляя несколько типов авторизации. По мере роста ваших навыков вы адаптируете Spring к новым архитектурам и создадите расширенные конфигурации OAuth2. К концу работы с книгой у вас будет настроенная конфигурация, которая защитит от угроз.
Скачать книгу
Telegram
Книги для программистов (reserved)
Spring Security in Action (2020)
Автор: Laurentiu Spilca
Автор: Laurentiu Spilca
Начни карьеру востребованного Java разработчика с наставниками из Java Mentor. Гарантированное трудоустройство в IT и оплата только за результат, когда начнешь работать.
Пройти входное тестирование: https://clck.ru/SDmoi
Тебя ждет высокая зарплата в топовых компаниях Москвы и минимум 10 предложений о работе. А еще 2 года карьерной поддержки с бесплатной возможностью принимать участие в онлайн и оффлайн мероприятиях с экспертами рынка.
Пройти входное тестирование: https://clck.ru/SDmoi
Тебя ждет высокая зарплата в топовых компаниях Москвы и минимум 10 предложений о работе. А еще 2 года карьерной поддержки с бесплатной возможностью принимать участие в онлайн и оффлайн мероприятиях с экспертами рынка.
Ответ на вопрос
Такой последовательности выполнения можно достичь многими способами, например, просто воспользоваться методом join(), чтобы запустить поток в момент, когда другой уже закончит своё выполнение. Для реализации заданной последовательности, нужно запустить последний поток первым, и затем вызывать метод join() в обратном порядке, то есть Т3 вызывает Т2.join, а Т2 вызывает Т1.join, таким образом Т1 закончит выполнение первым, а Т3 последним.
Такой последовательности выполнения можно достичь многими способами, например, просто воспользоваться методом join(), чтобы запустить поток в момент, когда другой уже закончит своё выполнение. Для реализации заданной последовательности, нужно запустить последний поток первым, и затем вызывать метод join() в обратном порядке, то есть Т3 вызывает Т2.join, а Т2 вызывает Т1.join, таким образом Т1 закончит выполнение первым, а Т3 последним.
Telegram
Библиотека джависта
#вопросы_с_собеседований
Даны 3 потока: Т1, Т2 и Т3. Как реализовать выполнение в последовательности Т1, Т2, Т3?
Даны 3 потока: Т1, Т2 и Т3. Как реализовать выполнение в последовательности Т1, Т2, Т3?
#вопросы_с_собеседований
Будет ли работать HashMap, если все добавляемые ключи будут иметь одинаковый hashCode()?
Будет ли работать HashMap, если все добавляемые ключи будут иметь одинаковый hashCode()?
Разбираем принципы работы Spring Framework!
В субботу, 12 декабря, состоится онлайн мастер-класс «Пишем свой DI-контейнер на Java», организованный IT-компанией MediaSoft и онлайн-университетом Skillbox.
В программе:
• Познакомимся со структурой современного Java-приложения;
• Разберемся, что такое зависимости, как с ними работать, и какие преимущества дает их внедрение;
• Рассмотрим принцип инверсии управления и как с его помощью снизить связность компонентов и улучшить модульность и расширяемость ПО;
• Реализуем собственный DI-контейнер;
• Рассмотрим практическое применение некоторых паттернов проектирования;
• Ответим на ваши вопросы.
Для кого: для разработчиков начального и среднего уровня. Подойдет как тем, кто только начинает разбираться со Spring, так и тем, кто уже уверенно работает с ним. Необходим опыт разработки на Java.
Когда: 12 декабря (суббота), 12:00-15:00 по московскому времени
Для участия необходимо зарегистрироваться 👈
В субботу, 12 декабря, состоится онлайн мастер-класс «Пишем свой DI-контейнер на Java», организованный IT-компанией MediaSoft и онлайн-университетом Skillbox.
В программе:
• Познакомимся со структурой современного Java-приложения;
• Разберемся, что такое зависимости, как с ними работать, и какие преимущества дает их внедрение;
• Рассмотрим принцип инверсии управления и как с его помощью снизить связность компонентов и улучшить модульность и расширяемость ПО;
• Реализуем собственный DI-контейнер;
• Рассмотрим практическое применение некоторых паттернов проектирования;
• Ответим на ваши вопросы.
Для кого: для разработчиков начального и среднего уровня. Подойдет как тем, кто только начинает разбираться со Spring, так и тем, кто уже уверенно работает с ним. Необходим опыт разработки на Java.
Когда: 12 декабря (суббота), 12:00-15:00 по московскому времени
Для участия необходимо зарегистрироваться 👈
Ответ
Да, будет, но в этом случае HashMap вырождается в связный список и теряет свои преимущества.
Да, будет, но в этом случае HashMap вырождается в связный список и теряет свои преимущества.
Telegram
Библиотека джависта
#вопросы_с_собеседований
Будет ли работать HashMap, если все добавляемые ключи будут иметь одинаковый hashCode()?
Будет ли работать HashMap, если все добавляемые ключи будут иметь одинаковый hashCode()?
#вопросы_с_собеседований
Что будет, если очередь пула потоков уже заполнена, но подаётся новая задача?
Что будет, если очередь пула потоков уже заполнена, но подаётся новая задача?
Если очередь пула потоков заполнилась, то поданная задача будет «отклонена». Например - метод submit() у ThreadPoolExecutor выкидывает RejectedExecutionException, после которого вызывается RejectedExecutionHandler.
#вопросы_с_собеседований
1. Что произойдет при вызове Iterator.next() без предварительного вызова Iterator.hasNext()?
2. Сколько элементов будет пропущено, если Iterator.next() будет вызван после 10-ти вызовов Iterator.hasNext()?
1. Что произойдет при вызове Iterator.next() без предварительного вызова Iterator.hasNext()?
2. Сколько элементов будет пропущено, если Iterator.next() будет вызван после 10-ти вызовов Iterator.hasNext()?
1. Если итератор указывает на последний элемент коллекции, то возникнет исключение NoSuchElementException, иначе будет возвращен следующий элемент.
2. Нисколько - hasNext() осуществляет только проверку наличия следующего элемента.
2. Нисколько - hasNext() осуществляет только проверку наличия следующего элемента.