#Вопросы_с_собеседования
❓Можно ли сузить уровень доступа/тип возвращаемого значения при переопределении метода?
• При переопределении метода нельзя сузить модификатор доступа к методу (например с 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
#Вопросы_с_собеседования
❓Объясните смысл параметров в конструкторе HashMap(int initialCapacity, float loadFactor)
• initialCapacity - исходный размер HashMap, количество корзин в хэш-таблице в момент её создания.
• loadFactor - коэффициент заполнения HashMap, при превышении которого происходит увеличение количества корзин и автоматическое перехэширование. Равен отношению числа уже хранимых элементов в таблице к её размеру.
❓Объясните смысл параметров в конструкторе HashMap(int initialCapacity, float loadFactor)
• initialCapacity - исходный размер HashMap, количество корзин в хэш-таблице в момент её создания.
• loadFactor - коэффициент заполнения HashMap, при превышении которого происходит увеличение количества корзин и автоматическое перехэширование. Равен отношению числа уже хранимых элементов в таблице к её размеру.
👍16
#Вопросы_с_собеседования
❓Как можно заранее выйти из цикла?
Используя оператор break, мы можем немедленно прекратить выполнение цикла:
❓Как можно заранее выйти из цикла?
Используя оператор break, мы можем немедленно прекратить выполнение цикла:
for (int i = 0; ; i++) {
if (i > 10) {
break;
}
}😢23👍14❤2🤔2
#Вопросы_с_собеседования
❓Что такое неизменяемый класс?
Класс называется неизменяемым, если его состояние не может быть изменено после создания. К примеру String в Java является неизменяемым. Как только вы создадите строку, вы не можете изменить ее содержание, и любая операция над ней вернёт новый объект.
Неизменяемые объекты хорошо применять при многопоточном программировании, так как при их использовании вы можете не беспокоиться о синхронизации. По сути, вся парадигма функционального программирования построена на неизменяемых объектах.
Подробнее тут: https://javarevisited.blogspot.com/2013/03/how-to-create-immutable-class-object-java-example-tutorial.html#axzz7O0LoB9rM
❓Что такое неизменяемый класс?
Класс называется неизменяемым, если его состояние не может быть изменено после создания. К примеру String в Java является неизменяемым. Как только вы создадите строку, вы не можете изменить ее содержание, и любая операция над ней вернёт новый объект.
Неизменяемые объекты хорошо применять при многопоточном программировании, так как при их использовании вы можете не беспокоиться о синхронизации. По сути, вся парадигма функционального программирования построена на неизменяемых объектах.
Подробнее тут: https://javarevisited.blogspot.com/2013/03/how-to-create-immutable-class-object-java-example-tutorial.html#axzz7O0LoB9rM
Blogspot
How to create Immutable Class and Object in Java - Tutorial Example
A blog about Java, Programming, Algorithms, Data Structure, SQL, Linux, Database, Interview questions, and my personal experience.
👍15
Корректно ли такое выражение?
Anonymous Quiz
46%
Да
46%
Нет, будет ошибка компиляции
9%
Нет, будет ошибка во время выполнения
👍27🔥5
Как преобразовать цветное изображение в черно-белое
Иногда может потребоваться преобразовать изображение в двоичное. Другими словами, вам нужно преобразовать цветное изображение или изображение в оттенках серого в черно-белое изображение.
Более подробно о работе с изображениями вы можете ознакомиться здесь.
Иногда может потребоваться преобразовать изображение в двоичное. Другими словами, вам нужно преобразовать цветное изображение или изображение в оттенках серого в черно-белое изображение.
Более подробно о работе с изображениями вы можете ознакомиться здесь.
👍25❤8
#Вопросы_с_собеседования
Какой результат будет выведен в консоль?
Ответ:
This is abstract class constructor
This is demo class constructor
Вопрос на понимание абстрактных классов. Создать экземпляр абстрактного класса нельзя, но он все же имеет конструктор. Более того любой класс имеет конструктор, даже если он не задан явно (он будет добавлен при компиляции). Здесь важно понимать, что при создании экземпляра наследника, самой первой строкой в конструкторе класса наследника будет вызван конструктор класса родителя.
Какой результат будет выведен в консоль?
Ответ:
This is demo class constructor
Вопрос на понимание абстрактных классов. Создать экземпляр абстрактного класса нельзя, но он все же имеет конструктор. Более того любой класс имеет конструктор, даже если он не задан явно (он будет добавлен при компиляции). Здесь важно понимать, что при создании экземпляра наследника, самой первой строкой в конструкторе класса наследника будет вызван конструктор класса родителя.
👍36
#Вопросы_с_собеседования
❓Что такое Java Classloader? Перечислите и объясните назначение трех типов загрузчиков классов.
Загрузчик классов Java — это часть среды выполнения Java, которая загружает классы по запросу (отложенная загрузка) в JVM (виртуальную машину Java). Классы могут быть загружены из локальной файловой системы, удаленной файловой системы или даже из Интернета.
При запуске JVM используются три загрузчика классов: 1. Bootstrap Classloader: загружает основной файл java API
❓Что такое Java Classloader? Перечислите и объясните назначение трех типов загрузчиков классов.
Загрузчик классов Java — это часть среды выполнения Java, которая загружает классы по запросу (отложенная загрузка) в JVM (виртуальную машину Java). Классы могут быть загружены из локальной файловой системы, удаленной файловой системы или даже из Интернета.
При запуске JVM используются три загрузчика классов: 1. Bootstrap Classloader: загружает основной файл java API
rt.jar из папки. 2. Extension Classloader: загружает файлы JAR из папки. 3. System classloader👍25