#Вопросы_с_собеседования
Какие классы позволяют преобразовать байтовые потоки в символьные и обратно?
•
•
Какие классы позволяют преобразовать байтовые потоки в символьные и обратно?
•
OutputStreamWriter
— «мост» между классом OutputStream и классом Writer. Символы, записанные в поток, преобразовываются в байты.•
InputStreamReader
— аналог для чтения. При помощи методов класса Reader читаются байты из потока InputStream и далее преобразуются в символы.👍16❤1
👍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