👍41👎2
Enum vs String
Используйте Enum для предопределенных состояний модели там, где это возможно. Это не только упрощает понимание кода, но и ускоряет процесс сравнения этих состояний. Сравнение по ссылке, определенно, на порядок быстрее стравнения строк или других обьектов.
Правда, в этом случае есть один большой минус — стоимость поддержки приложения увеличивается, особенно это становится заметным, когда нужно добавить, удалить или изменить одно из существующих состояний.
Но в случае если это неизменные свойства, как месяц года, то смело используйте перечисление.
Используйте Enum для предопределенных состояний модели там, где это возможно. Это не только упрощает понимание кода, но и ускоряет процесс сравнения этих состояний. Сравнение по ссылке, определенно, на порядок быстрее стравнения строк или других обьектов.
Правда, в этом случае есть один большой минус — стоимость поддержки приложения увеличивается, особенно это становится заметным, когда нужно добавить, удалить или изменить одно из существующих состояний.
Но в случае если это неизменные свойства, как месяц года, то смело используйте перечисление.
👍20
#Вопросы_с_собеседования
❓Дайте определение понятию «конструктор»
Конструктор — это специальный метод, у которого отсутствует возвращаемый тип и который имеет то же имя, что и класс, в котором он используется. Конструктор вызывается при создании нового объекта класса и определяет действия необходимые для его инициализации.
❓Дайте определение понятию «конструктор»
Конструктор — это специальный метод, у которого отсутствует возвращаемый тип и который имеет то же имя, что и класс, в котором он используется. Конструктор вызывается при создании нового объекта класса и определяет действия необходимые для его инициализации.
👍31
Обработка исключений в Java в функциональном стиле
В данной статье автор предоставит информацию о собственной библиотеке для обработки исключений (Exception) в функциональном стиле.
Смотреть статью
В данной статье автор предоставит информацию о собственной библиотеке для обработки исключений (Exception) в функциональном стиле.
Смотреть статью
Хабр
Обработка исключений в Java в функциональном стиле
Обработка исключений в Java в функциональном стиле В данной статье автор предоставит информацию о собственной библиотеке для обработки исключений (Exception) в функциональном стиле. Предпосылки В Java...
👍5
#Вопросы_с_собеседования
❓Что значит «усыпить» поток?
Это значит приостановить его на определенный промежуток времени, вызвав в ходе его выполнения статический метод
❓Что значит «усыпить» поток?
Это значит приостановить его на определенный промежуток времени, вызвав в ходе его выполнения статический метод
Thread.sleep()
передав в качестве параметра необходимое количество времени в миллисекундах. До истечения этого времени поток может быть выведен из состояния ожидания вызовом interrupt()
с выбрасыванием InterruptedException
.👍20
#Вопросы_с_собеседования
❓Какие типы классов бывают в Java?
☕️ Top level class (Обычный класс):
✔️ Abstract class (Абстрактный класс);
✔️ Final class (Финализированный класс).
☕️ Interfaces (Интерфейс).
☕️ Enum (Перечисление).
☕️ Nested class (Вложенный класс):
✔️ Static nested class (Статический вложенный класс);
✔️ Member inner class (Простой внутренний класс);
✔️ Local inner class (Локальный класс);
✔️ Anonymous inner class (Анонимный класс).
❓Какие типы классов бывают в Java?
☕️ Top level class (Обычный класс):
✔️ Abstract class (Абстрактный класс);
✔️ Final class (Финализированный класс).
☕️ Interfaces (Интерфейс).
☕️ Enum (Перечисление).
☕️ Nested class (Вложенный класс):
✔️ Static nested class (Статический вложенный класс);
✔️ Member inner class (Простой внутренний класс);
✔️ Local inner class (Локальный класс);
✔️ Anonymous inner class (Анонимный класс).
👍35
Возведение в степень
Возвести число в степень можно двумя способами:
1)простое умножение;
2)используя метод Math.pow() (двойное основание, двойной показатель степени).
Использование библиотечной функции рекомендуется только в случае крайней необходимости, например, в случае дробной или отрицательной степени.
Простое умножение в Java работает в 300-600 раз эффективнее, кроме того, его можно дополнительно оптимизировать.
Возвести число в степень можно двумя способами:
1)простое умножение;
2)используя метод Math.pow() (двойное основание, двойной показатель степени).
Использование библиотечной функции рекомендуется только в случае крайней необходимости, например, в случае дробной или отрицательной степени.
Простое умножение в Java работает в 300-600 раз эффективнее, кроме того, его можно дополнительно оптимизировать.
👍29
#Вопросы_с_собеседования
❓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