Библиотека собеса по Java | вопросы с собеседований
6.38K subscribers
359 photos
4 videos
201 links
Вопросы с собеседований по Java и ответы на них.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/08c603b6

Работать у нас: https://job.proglib.io/

Наши каналы: https://yangx.top/proglibrary/9197
加入频道
Как можно вывести на экран уникальные квадраты чисел используя метод map()?

Ответ на картинке.
Для чего нужен Component Scan?

Если вы понимаете как работает Component Scan, то вы понимаете Spring.

Первый шаг для описания Spring Beans это добавление аннотации — @Component, или @Service, или @Repository.

Однако Spring ничего не знает об этих бинах, если он не знает где искать их. То, что скажет Spring, где искать эти бины, и называется Component Scan. В @ComponentScan вы указываете пакеты, которые должны сканироваться.

Spring будет искать бины не только в пакетах для сканирования, но и в их подпакетах.
Что подразумевается под статическим блоком в Java?

Ответ: cтатический блок используется для инициализации статических переменных класса. Он выполняется только один раз: при первой загрузке класса в память.
Как можно заранее выйти из цикла?

Используя оператор break мы можем немедленно прекратить выполнение цикла:

for (int i = 0; ; i++) {
if (i > 10) {
break;
}
}
Можно ли в конструкторе выполнить исключение (exception)?

Ответ: Да. Если при создании объекта возникает ошибка, которая не может быть обработана внутри конструктора, то можно выбросить исключение, чтобы сообщить об ошибке вызывающему коду.
Что выведет эта программа?

Ответ:
Программа напечатает String method. Прежде всего стоит отметить, что null не является объектом в Java. Но null можно присвоить любой ссылке. Java String является объектом класса java.lang.String. В этой программе компилятор Java выбирает вызов перегруженного метода с наиболее конкретными параметрами. Это будет String, потому что класс String более конкретен, чем класс Object.
#код
Перечислите все конструкции, к которым применим модификатор static.

поля;
методы;
вложенные классы;
члены секции import;
статический блок инициализации.
В чем разница между классами java.util.Collection и java.util.Collections?

java.util.Collections — набор статических методов для работы с коллекциями.

java.util.Collection — один из основных интерфейсов Java Collections Framework.
Может ли не быть ни одного блока catch при отлавливании исключений?

Да, возможен вариант без блока catch при работе с исключениями.
Достаточно использовать только блок try и finally. В этом случае исключение, возникшее в блоке try, просто будет выброшено дальше, без обработки в данном месте.

Такой подход может быть оправдан, если нет необходимости обрабатывать исключение непосредственно там, где оно возникло. Например, достаточно просто закрыть использованные ресурсы в блоке finally.
То есть использование конструкции без catch вполне допустимо и имеет свои применения в зависимости от логики программы.
Что будет, если единственный конструктор класса объявлен как final?

— Этот конструктор нельзя будет переопределить в подклассах.
— Невозможно создать наследников от данного класса, так как нельзя переопределить единственный конструктор.
— Попытка создания подкласса приведет к ошибке компиляции, так как компилятор не сможет сгенерировать конструктор по умолчанию для подкласса.
— Единственный способ наследоваться от такого класса — использовать агрегацию, композицию или делегирование вместо наследования.

Это полезный прием для предотвращения наследования, когда оно не требуется или нежелательно по архитектурным соображениям.
#вопросы_с_собеседований
Какой метод HTTP не является неизменяемым?

Если один и тот же запрос всегда возвращает одинаковый результат, то такой HTTP метод называется неизменяемым. Неизменяемыми методами HTTP являются GET, PUT, DELETE, HEAD и OPTIONS. Поэтому для обеспечения постоянного одинакового результата приложение должно быть реализовано таким образом, чтобы эти методы всегда возвращали одинаковый результат.
Можно ли наследоваться от строкового типа?

В Java нельзя наследоваться от строкового типа (String). Строковый тип — это класс String, который является финальным (final) классом, что означает, что его нельзя расширить другим классом. Финальный класс не может иметь подклассов.

Если вам нужно создать свой собственный тип данных для представления строк или добавить дополнительное поведение к строкам, вы можете создать свой собственный класс и включить в него объект типа String в качестве поля.
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах.

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
Каким образом из вложенного класса получить доступ к полю внешнего класса?

Статический вложенный класс имеет прямой доступ только к статическим полям обрамляющего класса.

Простой внутренний класс, может обратиться к любому полю внешнего класса напрямую. В случае, если у вложенного класса уже существует поле с таким же литералом, то обращаться к такому полю следует через ссылку на его экземпляр. Например: Outer.this.field.
Какие методы можно использовать для реализации «внедрения зависимостей» в Java?

Ответ: Путем использования конструктора, путем использования методов getter/setter и с помощью механизмов рефлексии.
В чем разница между Hashset и Treeset?

Классы HashSet и TreeSet реализуют интерфейс Set и представляют наборы отдельных элементов. Кроме того, TreeSet реализует интерфейс NavigableSet. Этот интерфейс определяет методы, использующие порядок элементов.

HashSet внутренне основан на HashMap, а TreeSet поддерживается экземпляром TreeMap, который определяет их свойства: HashSet не хранит элементы в каком-либо определенном порядке. Итерация по элементам в HashSet проиcходит в перемешанном порядке. TreeSet, с другой стороны, создает элементы по порядку в соответствии с некоторым предопределенным Компаратором.
Почему хранить пароль предпочтительнее в char[] или byte[], а не в String?

Ответ: во-первых, строка в виде литерала сразу раскрывает пароль, а также она всегда хранится в string-пуле. Во-вторых, byte[] или char[] можно сбросить после использования и удалить на них все ссылки.
Что делает метод repeat()?

Метод repeat() принадлежит классу String и используется для повторения строки заданное количество раз.
Позволяет легко создавать повторяющиеся строки без использования циклов.

Удобно использовать для создания разделителей, оформления вывода и т.д.
#вопросы_с_собеседований
Какой метод HTTP не является неизменяемым?

Ответ: HTTP метод называется неизменяемым, если он на один и тот же запрос всегда возвращает одинаковый результат. HTTP методы GET, PUT, DELETE, HEAD и OPTIONS являются неизменяемыми, поэтому необходимо реализовывать приложение так, чтобы эти методы возвращали одинаковый результат постоянно.
Почему Map не наследуется от Collection?

Это связано с тем, что Map представляет отображение ключ-значение, в то время как Collection представляет коллекцию объектов.

Коллекции работают с объектами на основе их позиции в коллекции, тогда как в Map объекты доступны по ключу. Поэтому операции, определенные в Collection, такие как добавление, получение по индексу и итерация, не имеют смысла для Map.

Вместо этого в Map определены операции для работы с парами ключ-значение, такие как put(), get(), containsKey() и другие. Наследование Map от Collection привело бы к наследованию неподходящих методов.