🔝 Топ 8 вопросов и ответов о Enum на собеседовании на позицию Java-разработчик



Enum был представлен в Java 5 и с тех пор стал очень популярен среди Java-разработчиков и широко используется в различных Java-приложениях. Но, несмотря на такую популярность, многие Java-программисты до сих пор не знают о функциональных возможностях, предоставляемых Enum, и тонкостях использования Enum в коде.



1. Может ли Enum реализовать интерфейс в Java?

Да, Enum может реализовать интерфейс на Java. Поскольку enum является типом данных, аналогичный классу и интерфейсу, он может реализовать интерфейс.



2. Можем ли мы использовать Enum в случае со switch в Java?

Да, вы можете использовать Enum в случае switch в Java. Поскольку экземпляры Enum являются константами на момент компиляции, вы можете безопасно использовать их внутри операторов switch и case.



3. Возможно ли создание Enum без экземпляров в Java?

Это один из тех каверзных вопросов по Java, которые любят задавать на интервью. Поскольку Enum рассматривается как набор четко определенного фиксированного числа экземпляров (дни недели, месяц в году и т.д.), наличие Enum без какого-либо экземпляра может показаться бессмысленным.

Однако да, вы можете создать Enum без какого-либо экземпляра в Java.



4. Можем ли мы объявить конструктор внутри Enum в Java?

Да, это возможно. Но следует учитывать, что внутри перечисления вы можете объявить private либо package-private конструктор. Public и Protected конструкторы не допускаются внутри перечисления.



5. Что делает метод ordinal() в Enum?

Метод возвращает порядковый номер конкретного экземпляра Enum.



6. Может ли Enum наследоваться от класса в Java?

Нет, Enum не может расшириять класс в Java.



7. Каковы преимущества и недостатки использования Enum в качестве Singleton?

Enum предоставляет быстрый способ реализации шаблона проектирования Singleton.

Enum Singleton справляется со многими задачами:

- контролируемое создание экземпляров

- безопасность сериализации

- потокобезопасность



8. В чем преимущество использования Enum по сравнению с Enum Pattern?

Enum Pattern - общедоступные статические константы для представления набора известных фиксированных значений. Как правильно строковые или числовые значения.

Проблема в том, что строковое или числовое значение может принимать любое произвольное значение своего типа. Компилятор этого не запрещает.

Напротив, используя Enum мы получаетем безопасность типов и соотвествующих им значений на уровне компилятора.





🌟 А ты смог бы ответить на эти вопросы? Пиши в комментариях.

🌟 Пиши в комментариях свои мысли, если считаешь что данный список можно расширить.



Jetbulb