#Вопросы_с_собеседования
❓LinkedList — это односвязный, двусвязный или четырехсвязный список?
Ответ:
Двусвязный: каждый элемент LinkedList хранит ссылку на предыдущий и следующий элементы.
❓LinkedList — это односвязный, двусвязный или четырехсвязный список?
Ответ:
👍35👎1
📌 Lombok — библиотека, генерирующая за вас бойлерплейт (шаблонный) код. Даёт возможность создавать классы ускоренно, так как не надо вручную прописывать, например, геттеры и сеттеры, всё делается с помощью аннотаций.
Вы можете создавать неизменяемые классы вместе с типовыми методами и геттерами к ним — с помощью @Vаlue. Все поля класса будут финализированы и сделаны приватными.
Документацию проекта можно найти здесь.
Вы можете создавать неизменяемые классы вместе с типовыми методами и геттерами к ним — с помощью @Vаlue. Все поля класса будут финализированы и сделаны приватными.
Документацию проекта можно найти здесь.
👍27
#Вопросы_с_собеседования
❓Как одной строчкой скопировать элементы любой collection в массив?
Ответ на картинке.
❓Как одной строчкой скопировать элементы любой collection в массив?
Ответ на картинке.
👍48
#Вопросы_с_собеседования
❓Возможно ли использование блока try-finally (без catch)?
Такая запись допустима, но смысла в такой записи не так много, всё же лучше иметь блок catch, в котором будет обрабатываться необходимое исключение.
❓Возможно ли использование блока try-finally (без catch)?
Такая запись допустима, но смысла в такой записи не так много, всё же лучше иметь блок catch, в котором будет обрабатываться необходимое исключение.
👍24👎5
#Вопросы_с_собеседования
Что не так с кодом?
Он не скомпилируется. Это вопрос на знание иерархии исключений:
Что не так с кодом?
Он не скомпилируется. Это вопрос на знание иерархии исключений:
FileNotFoundException
унаследован от IOException
, первый catch будет перехватывать все исключения, а в следующий блок catch управление передано не будет. Поэтому возникнет ошибка: exception FileNotFoundException has already been caught
.👍54
#Вопросы_с_собеседования
❓Как выбрать все элементы определенного каталога по критерию (например, с определенным расширением)?
Метод
❓Как выбрать все элементы определенного каталога по критерию (например, с определенным расширением)?
Метод
File.listFiles()
возвращает массив объектов File
, содержащихся в каталоге. Метод может принимать в качестве параметра объект класса, реализующего FileFilter
. Это позволяет включить в список только те элементы, для которых метод accept возвращает true (критерием может быть длина имени файла или его расширение).👍20
#Вопросы_с_собеседования
Какие преимущества есть у многопоточности?
1) Многопоточность позволяет приложению / программе всегда реагировать на ввод, даже если она уже выполняется с некоторыми фоновыми задачами;
2) Многопоточность позволяет быстрее выполнять задачи, поскольку потоки выполняются независимо;
3) Многопоточность обеспечивает лучшее использование кэш-памяти, поскольку потоки разделяют общие ресурсы памяти;
4) Многопоточность уменьшает количество требуемого сервера, поскольку один сервер может одновременно выполнять несколько потоков.
Какие преимущества есть у многопоточности?
1) Многопоточность позволяет приложению / программе всегда реагировать на ввод, даже если она уже выполняется с некоторыми фоновыми задачами;
2) Многопоточность позволяет быстрее выполнять задачи, поскольку потоки выполняются независимо;
3) Многопоточность обеспечивает лучшее использование кэш-памяти, поскольку потоки разделяют общие ресурсы памяти;
4) Многопоточность уменьшает количество требуемого сервера, поскольку один сервер может одновременно выполнять несколько потоков.
👍31
jsoup
Библиотека для парсинга и разбора HTML-страниц методами в стиле DOM, CSS и jQuery. Позволяет извлекать данные по URL, из локальных гипертекстовых файлов, фрагментов HTML-кода и даже из строковых переменных, содержащих разметку. Вы можете вытаскивать из страниц все ссылки или заголовки нужного уровня, управлять текстом и стилем, очищать код от атрибутов, добавленных в результате XSS-атак. Для отбора нужных данных вы можете увязать их с DOM-элементами и селекторами CSS.
Библиотека для парсинга и разбора HTML-страниц методами в стиле DOM, CSS и jQuery. Позволяет извлекать данные по URL, из локальных гипертекстовых файлов, фрагментов HTML-кода и даже из строковых переменных, содержащих разметку. Вы можете вытаскивать из страниц все ссылки или заголовки нужного уровня, управлять текстом и стилем, очищать код от атрибутов, добавленных в результате XSS-атак. Для отбора нужных данных вы можете увязать их с DOM-элементами и селекторами CSS.
jsoup.org
jsoup: Java HTML parser, built for HTML editing, cleaning, scraping, and XSS safety
Open source Java HTML parser, with the best of HTML5 DOM methods and CSS selectors, for easy data extraction.
👍14❤2
#Вопросы_с_собеседования
❓Что такое «ссылка на метод»?
Если существующий в классе метод уже делает все, что необходимо, то можно воспользоваться механизмом method reference (ссылка на метод) для непосредственной передачи этого метода. Такая ссылка передается в виде:
•
•
•
Результат будет в точности таким же, как в случае определения лямбда-выражения, которое вызывает этот метод.
Ссылки на методы потенциально более эффективны, чем использование лямбда-выражений. Кроме того, они предоставляют компилятору более качественную информацию о типе и при возможности выбора между использованием ссылки на существующий метод и использованием лямбда-выражения, следует всегда предпочитать использование ссылки на метод.
❓Что такое «ссылка на метод»?
Если существующий в классе метод уже делает все, что необходимо, то можно воспользоваться механизмом method reference (ссылка на метод) для непосредственной передачи этого метода. Такая ссылка передается в виде:
•
имя_класса::имя_статического_метода
для статического метода;•
объект_класса::имя_метода
для метода экземпляра;•
название_класса::new
для конструктора.Результат будет в точности таким же, как в случае определения лямбда-выражения, которое вызывает этот метод.
Ссылки на методы потенциально более эффективны, чем использование лямбда-выражений. Кроме того, они предоставляют компилятору более качественную информацию о типе и при возможности выбора между использованием ссылки на существующий метод и использованием лямбда-выражения, следует всегда предпочитать использование ссылки на метод.
👍28
Реализация двухфакторной аутентификации с помощью Spring Security
В статье рассматривается использование двухфакторной аутентификации (когда клиент должен предоставить дополнительный токен безопасности помимо учетных данных) с помощью Spring Security. Хоть в Spring и нет встроенной двухфакторной аутентификации, эту функциональность легко добавить.
Читать статью
В статье рассматривается использование двухфакторной аутентификации (когда клиент должен предоставить дополнительный токен безопасности помимо учетных данных) с помощью Spring Security. Хоть в Spring и нет встроенной двухфакторной аутентификации, эту функциональность легко добавить.
Читать статью
Java Development Journal
Two Factor Authentication with Spring Security | Java Development Journal
In this article of spring security tutorials, we will look at the two factor authentication with Spring security. We are going to use the soft token with Spring Security. Two ... <a title="Two Factor Authentication with Spring Security" class="read-more"…
👍11
👍25😱11👎1
#Вопросы_с_собеседования
❓Какой способ клонирования предпочтительней?
Наиболее безопасным и, следовательно, предпочтительным способом клонирования является использование специализированного конструктора копирования:
• Отсутствие ошибок наследования (не нужно беспокоиться, что у наследников появятся новые поля, которые не будут склонированы через метод clone());
• Поля для клонирования указываются явно;
• Возможность клонировать даже final поля.
❓Какой способ клонирования предпочтительней?
Наиболее безопасным и, следовательно, предпочтительным способом клонирования является использование специализированного конструктора копирования:
• Отсутствие ошибок наследования (не нужно беспокоиться, что у наследников появятся новые поля, которые не будут склонированы через метод clone());
• Поля для клонирования указываются явно;
• Возможность клонировать даже final поля.
👍16
Java Learning
Пишем Java веб-приложение на современном стеке. С нуля до микросервисной архитектуры. Часть 1 Смотреть статью
Пишем Java веб-приложение на современном стеке. С нуля до микросервисной архитектуры. Часть 2
Смотреть статью
Смотреть статью
Tproger
Пишем Java веб-приложение на современном стеке. С нуля до микросервисной архитектуры. Часть 2
В этой части мы попытаемся добавить безопасности в наше приложение — сделаем отдельный микросервис аутентификации/авторизации, а в нашем приложении BookStore запретим вызов методов неавторизованными пользователями.
👍17❤1
#Вопросы_с_собеседования
Что произойдет при вызове Iterator.next() без предварительного вызова Iterator.hasNext()?
Если итератор указывает на последний элемент коллекции, то возникнет исключение
Что произойдет при вызове Iterator.next() без предварительного вызова Iterator.hasNext()?
Если итератор указывает на последний элемент коллекции, то возникнет исключение
NoSuchElementException
, иначе будет возвращен следующий элемент.👍14😱1
#вопросы_с_собеседований
При помощи чего формируются запросы к базе данных?
Для выполнения запросов к базе данных в Java используются три интерфейса:
☕️
☕️
☕️
Объекты-носители интерфейсов создаются при помощи методов объекта java.sql.Connection:
☕️
☕️
☕️
При помощи чего формируются запросы к базе данных?
Для выполнения запросов к базе данных в Java используются три интерфейса:
☕️
java.sql.Statement
- для операторов SQL без параметров;☕️
java.sql.PreparedStatement
- для операторов SQL с параметрами и часто выполняемых операторов;☕️
java.sql.CallableStatement
- для исполнения хранимых в базе процедур.Объекты-носители интерфейсов создаются при помощи методов объекта java.sql.Connection:
☕️
java.sql.createStatement()
возвращает объект Statement;☕️
java.sql.prepareStatement()
возвращает объект PreparedStatement;☕️
java.sql.prepareCall()
возвращает объект CallableStatement;👍25
👍16😱9