#Вопросы_с_собеседования
❓Что такое иерархия исключений?
Иерархия следующая:
Throwable – родительский класс для всех классов Exception. Есть два типа исключений: отмеченные исключения и UncheckedExceptions или RunTimeExceptions. Оба типа исключений расширяют класс Exception, тогда как ошибки далее классифицируются на ошибку виртуальной машины и ошибку утверждения.
❓Что такое иерархия исключений?
Иерархия следующая:
Throwable – родительский класс для всех классов Exception. Есть два типа исключений: отмеченные исключения и UncheckedExceptions или RunTimeExceptions. Оба типа исключений расширяют класс Exception, тогда как ошибки далее классифицируются на ошибку виртуальной машины и ошибку утверждения.
👍21😢4
#Вопросы_с_собеседования
❓В equals() требуется проверять, что аргумент equals(Object that) такого же типа что и сам объект. В чем разница между this.getClass() == that.getClass() и that instanceof MyClass?
Оператор instanceof сравнивает объект и указанный тип. Его можно использовать для проверки, является ли данный объект экземпляром некоторого класса, либо экземпляром его дочернего класса, либо экземпляром класса, который реализует указанный интерфейс.
this.getClass() == that.getClass() проверяет два класса на идентичность, поэтому для корректной реализации контракта метода equals() необходимо использовать точное сравнение с помощью метода getClass().
❓В equals() требуется проверять, что аргумент equals(Object that) такого же типа что и сам объект. В чем разница между this.getClass() == that.getClass() и that instanceof MyClass?
Оператор instanceof сравнивает объект и указанный тип. Его можно использовать для проверки, является ли данный объект экземпляром некоторого класса, либо экземпляром его дочернего класса, либо экземпляром класса, который реализует указанный интерфейс.
this.getClass() == that.getClass() проверяет два класса на идентичность, поэтому для корректной реализации контракта метода equals() необходимо использовать точное сравнение с помощью метода getClass().
👍19😢2
#Вопросы_с_собеседования
❓Напишите метод, который на вход получает коллекцию объектов, а возвращает коллекцию уже без дубликатов
Ответ на картинке.
❓Напишите метод, который на вход получает коллекцию объектов, а возвращает коллекцию уже без дубликатов
Ответ на картинке.
👍53🤔3
#Вопросы_с_собеседования
❓Опишите специальные коллекции для перечислений. Каковы преимущества их внедрения по сравнению с обычными коллекциями?
EnumSet и EnumMap — это специальные реализации интерфейсов Set и Map соответственно. Всегда стоит использовать эти реализации, когда имеете дело с перечислениями, потому что они очень эффективны.
EnumSet — это просто битовый вектор с «единицами» в позициях, соответствующих порядковым значениям перечислений, присутствующих в множестве. Чтобы проверить, находится ли значение перечисления в множестве, реализация просто должна проверить, является ли соответствующий бит в векторе «единицей», что является очень простой операцией.
Точно так же EnumMap — это массив, доступ к которому осуществляется с помощью порядкового значения перечисления в качестве индекса. В случае с EnumMap нет необходимости вычислять хеш-коды или разрешать коллизии.
❓Опишите специальные коллекции для перечислений. Каковы преимущества их внедрения по сравнению с обычными коллекциями?
EnumSet и EnumMap — это специальные реализации интерфейсов Set и Map соответственно. Всегда стоит использовать эти реализации, когда имеете дело с перечислениями, потому что они очень эффективны.
EnumSet — это просто битовый вектор с «единицами» в позициях, соответствующих порядковым значениям перечислений, присутствующих в множестве. Чтобы проверить, находится ли значение перечисления в множестве, реализация просто должна проверить, является ли соответствующий бит в векторе «единицей», что является очень простой операцией.
Точно так же EnumMap — это массив, доступ к которому осуществляется с помощью порядкового значения перечисления в качестве индекса. В случае с EnumMap нет необходимости вычислять хеш-коды или разрешать коллизии.
👍17
Какое максимальное количество потоков может одновременно, не блокируя друг друга, совершить запись в ConcurrentHashMap?
Anonymous Quiz
31%
1
19%
По кол-ву записей (entry)
36%
По кол-ву корзин (bucket)
14%
По кол-ву деревьев (tree)
🤔15👍11
#Вопросы_с_собеседования
❓Каковы варианты использования Spring Framework?
Spring Framework можно использовать по-разному:
☕️ Как полноценное веб-приложение Spring.
☕️ В качестве стороннего веб-фреймворка с использованием Spring Frameworks среднего уровня.
☕️ Для удаленного использования.
☕️ Как корпоративный Java-бин, который может обертывать существующие POJO (Plain Old Java Objects).
❓Каковы варианты использования Spring Framework?
Spring Framework можно использовать по-разному:
☕️ Как полноценное веб-приложение Spring.
☕️ В качестве стороннего веб-фреймворка с использованием Spring Frameworks среднего уровня.
☕️ Для удаленного использования.
☕️ Как корпоративный Java-бин, который может обертывать существующие POJO (Plain Old Java Objects).
👍17🤔3😢2
#Вопросы_с_собеседования
❓Можно ли сузить уровень доступа/тип возвращаемого значения при переопределении метода?
• При переопределении метода нельзя сузить модификатор доступа к методу (например с public в MainClass до private в Class extends MainClass).
• Изменить тип возвращаемого значения при переопределении метода нельзя, будет ошибка attempting to use incompatible return type.
• Можно сузить возвращаемое значение, если они совместимы.
❓Можно ли сузить уровень доступа/тип возвращаемого значения при переопределении метода?
• При переопределении метода нельзя сузить модификатор доступа к методу (например с public в MainClass до private в Class extends MainClass).
• Изменить тип возвращаемого значения при переопределении метода нельзя, будет ошибка attempting to use incompatible return type.
• Можно сузить возвращаемое значение, если они совместимы.
👍21🤔3❤1
Генерируем код и пароль
Часто мы забываем наши пароли и выбираем опцию «Забыть пароль», и в кратчайшие сроки мы получаем новый пароль на наш зарегистрированный адрес электронной почты или номер телефона для входа в нашу учетную запись.
Иногда мы получаем доступ к нашим банковским счетам во время покупок в интернет-магазине и чтобы подтвердить наш переход с банковского счета, нам отправляют нам OTP (одноразовый пароль) на наш зарегистрированный номер телефона или адрес электронной почты.
Следующий код объясняет, как быстро генерировать такие пароли и OTP.
Часто мы забываем наши пароли и выбираем опцию «Забыть пароль», и в кратчайшие сроки мы получаем новый пароль на наш зарегистрированный адрес электронной почты или номер телефона для входа в нашу учетную запись.
Иногда мы получаем доступ к нашим банковским счетам во время покупок в интернет-магазине и чтобы подтвердить наш переход с банковского счета, нам отправляют нам OTP (одноразовый пароль) на наш зарегистрированный номер телефона или адрес электронной почты.
Следующий код объясняет, как быстро генерировать такие пароли и OTP.
👍53🔥7❤1
#Вопросы_с_собеседования
❓Каковы состояния в жизненном цикле потока?
1) New: В этом состоянии объект класса Thread создается с использованием оператора new, но поток не существует. Поток не запускается, пока мы не вызовем метод start().
2) Runnable: В этом состоянии поток готов к запуску после вызова метода start(). Однако он еще не выбран планировщиком потока.
3) Running: В этом состоянии планировщик потока выбирает поток из состояния готовности, и тот работает.
4) Waiting/Blocked: в этом состоянии поток не работает, но все еще жив или ожидает завершения другого потока.
5) Dead/Terminated: при выходе из метода run() поток находится в завершенном или мертвом состоянии.
❓Каковы состояния в жизненном цикле потока?
1) New: В этом состоянии объект класса Thread создается с использованием оператора new, но поток не существует. Поток не запускается, пока мы не вызовем метод start().
2) Runnable: В этом состоянии поток готов к запуску после вызова метода start(). Однако он еще не выбран планировщиком потока.
3) Running: В этом состоянии планировщик потока выбирает поток из состояния готовности, и тот работает.
4) Waiting/Blocked: в этом состоянии поток не работает, но все еще жив или ожидает завершения другого потока.
5) Dead/Terminated: при выходе из метода run() поток находится в завершенном или мертвом состоянии.
👍31
Spring. Экспертное мнение о плюсах и минусах самого популярного Java-фреймворка
Spring является самым популярным инструментом при разработке промышленных приложений на Java – от больших монолитных приложений до микросервисов.
Смотреть статью
Spring является самым популярным инструментом при разработке промышленных приложений на Java – от больших монолитных приложений до микросервисов.
Смотреть статью
Хабр
Spring. Экспертное мнение о плюсах и минусах самого популярного Java-фреймворка
Spring является самым популярным инструментом при разработке промышленных приложений на Java – от больших монолитных приложений до микросервисов. Сразу стоит отметить, что под термином Spring мы...
👍10
Зубчатый массив в Java
Зубчатый массив — это массив массивов, в котором массивы элементов могут быть разных размеров, т. е. мы можем создать двумерный массив, но с переменным числом столбцов в каждой строке. Эти типы массивов также известны как зубчатые массивы.
Подробнее о зубчатых массивах можно почитать здесь.
Зубчатый массив — это массив массивов, в котором массивы элементов могут быть разных размеров, т. е. мы можем создать двумерный массив, но с переменным числом столбцов в каждой строке. Эти типы массивов также известны как зубчатые массивы.
Подробнее о зубчатых массивах можно почитать здесь.
👍23🔥1
#Вопросы_с_собеседования
❓Могут ли у разных объектов быть одинаковые hashCode()?
Да, могут. Метод hashCode() не гарантирует уникальность возвращаемого значения. Ситуация, когда у разных объектов одинаковые хэш коды называется коллизией. Вероятность возникновения коллизии зависит от используемого алгоритма генерации хэш кода.
❓Могут ли у разных объектов быть одинаковые hashCode()?
Да, могут. Метод hashCode() не гарантирует уникальность возвращаемого значения. Ситуация, когда у разных объектов одинаковые хэш коды называется коллизией. Вероятность возникновения коллизии зависит от используемого алгоритма генерации хэш кода.
👍31
#Вопросы_с_собеседования
❓Как можно вывести на экран уникальные квадраты чисел используя метод map()?
Ответ на картинке.
❓Как можно вывести на экран уникальные квадраты чисел используя метод map()?
Ответ на картинке.
👍28