Почему в некоторых интерфейсах вообще не определяют методов?
Пишите в комментариях ваш вариант. Ответ будет у нас в канале.
#вопросы_с_собеседований
Пишите в комментариях ваш вариант. Ответ будет у нас в канале.
#вопросы_с_собеседований
👍3
Ответ на "Почему в некоторых интерфейсах вообще не определяют методов?"
Это так называемые маркерные интерфейсы. Они просто указывают что класс относится к определенному типу. Примером может послужить интерфейс
#вопросы_с_собеседований
Это так называемые маркерные интерфейсы. Они просто указывают что класс относится к определенному типу. Примером может послужить интерфейс
Clonable
, который указывает на то, что класс поддерживает механизм клонирования.#вопросы_с_собеседований
👍7
Какой способ клонирования предпочтительней?
Пишите в комментариях ваш вариант. Ответ будет у нас в канале.
#вопросы_с_собеседований
Пишите в комментариях ваш вариант. Ответ будет у нас в канале.
#вопросы_с_собеседований
Ответ на "Какой способ клонирования предпочтительней?"
Наиболее безопасным и, следовательно, предпочтительным способом клонирования является использование специализированного конструктора копирования:
• Отсутствие ошибок наследования (не нужно беспокоиться, что у наследников появятся новые поля, которые не будут склонированы через метод
• Поля для клонирования указываются явно;
• Возможность клонировать даже
#вопросы_с_собеседований
Наиболее безопасным и, следовательно, предпочтительным способом клонирования является использование специализированного конструктора копирования:
• Отсутствие ошибок наследования (не нужно беспокоиться, что у наследников появятся новые поля, которые не будут склонированы через метод
clone()
);• Поля для клонирования указываются явно;
• Возможность клонировать даже
final
поля.#вопросы_с_собеседований
Дайте определение понятию «конструктор».
Пишите в комментариях ваш вариант. Ответ будет у нас в канале.
#вопросы_с_собеседований
Пишите в комментариях ваш вариант. Ответ будет у нас в канале.
#вопросы_с_собеседований
Ответ на "Дайте определение понятию «конструктор»."
Конструктор — это специальный метод, у которого отсутствует возвращаемый тип и который имеет то же имя, что и класс, в котором он используется. Конструктор вызывается при создании нового объекта класса и определяет действия необходимые для его инициализации.
#вопросы_с_собеседований
Конструктор — это специальный метод, у которого отсутствует возвращаемый тип и который имеет то же имя, что и класс, в котором он используется. Конструктор вызывается при создании нового объекта класса и определяет действия необходимые для его инициализации.
#вопросы_с_собеседований
👍9
Что такое «конструктор по умолчанию»?
Пишите в комментариях ваш вариант. Ответ будет у нас в канале.
#вопросы_с_собеседований
Пишите в комментариях ваш вариант. Ответ будет у нас в канале.
#вопросы_с_собеседований
Ответ на "Что такое «конструктор по умолчанию»?"
Если у какого-либо класса не определить конструктор, то компилятор сгенерирует конструктор без аргументов - так называемый «конструктор по умолчанию».
#вопросы_с_собеседований
Если у какого-либо класса не определить конструктор, то компилятор сгенерирует конструктор без аргументов - так называемый «конструктор по умолчанию».
public class ClassName() {}Если у класса уже определен какой-либо конструктор, то конструктор по умолчанию создан не будет и, если он необходим, его нужно описывать явно.
#вопросы_с_собеседований
Java Pro - блог ведущего дата саентиста, Ozon tech.
Здесь разобраны реальные практические задачи по работе с данными с собеседований крупных компаний.
Java программисты с глубоким знанием языка, пишет код в разы эффективнее специалистов с базовыми навыками.
Java Pro - это первоисточник материала, который появляется в платных курсах и блогах.
Рекомендуем подписаться!
Здесь разобраны реальные практические задачи по работе с данными с собеседований крупных компаний.
Java программисты с глубоким знанием языка, пишет код в разы эффективнее специалистов с базовыми навыками.
Java Pro - это первоисточник материала, который появляется в платных курсах и блогах.
Рекомендуем подписаться!
👍4🔥2❤1👎1😁1
Чем отличаются конструктор по-умолчанию, конструктор копирования и конструктор с параметрами?
Пишите в комментариях ваш вариант. Ответ будет у нас в канале.
#вопросы_с_собеседований
Пишите в комментариях ваш вариант. Ответ будет у нас в канале.
#вопросы_с_собеседований
👍4
Ответ на "Чем отличаются конструктор по-умолчанию, конструктор копирования и конструктор с параметрами?"
У конструктора по умолчанию отсутствуют какие-либо аргументы. Конструктор копирования принимает в качестве аргумента уже существующий объект класса для последующего создания его клона. Конструктор с параметрами имеет в своей сигнатуре аргументы (обычно необходимые для инициализации полей класса).
#вопросы_с_собеседований
У конструктора по умолчанию отсутствуют какие-либо аргументы. Конструктор копирования принимает в качестве аргумента уже существующий объект класса для последующего создания его клона. Конструктор с параметрами имеет в своей сигнатуре аргументы (обычно необходимые для инициализации полей класса).
#вопросы_с_собеседований
👍4
Зачем нужен equals(). Чем он отличается от операции ==?
Пишите в комментариях ваш вариант. Ответ будет у нас в канале.
#вопросы_с_собеседований
Пишите в комментариях ваш вариант. Ответ будет у нас в канале.
#вопросы_с_собеседований
👍1
Ответ на "Зачем нужен equals(). Чем он отличается от операции ==?"
Метод
При сравнении объектов с помощью
#вопросы_с_собеседований
Метод
equals()
- определяет отношение эквивалентности объектов.При сравнении объектов с помощью
==
сравнение происходит лишь между ссылками. При сравнении по переопределённому разработчиком equals()
- по внутреннему состоянию объектов.#вопросы_с_собеседований
Если equals() переопределен, есть ли какие-либо другие методы, которые следует переопределить?
Пишите в комментариях ваш вариант. Ответ будет у нас в канале.
#вопросы_с_собеседований
Пишите в комментариях ваш вариант. Ответ будет у нас в канале.
#вопросы_с_собеседований
Ответ на "Если equals() переопределен, есть ли какие-либо другие методы, которые следует переопределить?"
Равные объекты должны возвращать одинаковые хэш коды. При переопределении
#вопросы_с_собеседований
Равные объекты должны возвращать одинаковые хэш коды. При переопределении
equals()
нужно обязательно переопределять и метод hashCode()
.#вопросы_с_собеседований
Что будет, если переопределить equals() не переопределяя hashCode()? Какие могут возникнуть проблемы?
Пишите в комментариях ваш вариант. Ответ будет у нас в канале.
#вопросы_с_собеседований
Пишите в комментариях ваш вариант. Ответ будет у нас в канале.
#вопросы_с_собеседований
👍2
Ответ на "Что будет, если переопределить equals() не переопределяя hashCode()? Какие могут возникнуть проблемы?"
Классы и методы, которые используют правила этого контракта могут работать некорректно. Так для
#вопросы_с_собеседований
Классы и методы, которые используют правила этого контракта могут работать некорректно. Так для
HashMap
это может привести к тому, что пара «ключ-значение», которая была в неё помещена при использовании нового экземпляра ключа не будет в ней найдена.#вопросы_с_собеседований
👍4❤2
Каким образом реализованы методы hashCode() и equals() в классе Object?
Пишите в комментариях ваш вариант. Ответ будет у нас в канале.
#вопросы_с_собеседований
Пишите в комментариях ваш вариант. Ответ будет у нас в канале.
#вопросы_с_собеседований
Ответ на "Каким образом реализованы методы hashCode() и equals() в классе Object?"
Реализация метода
Реализация метода
Object.equals()
сводится к проверке на равенство двух ссылок:public boolean equals(Object obj) {Реализация метода
return (this == obj);
}
Object.hashCode()
описана как native
, т.е. определенной не с помощью Java кода и обычно возвращает адрес объекта в памяти:public native int hashCode();
#вопросы_с_собеседований👍3😁2