🔝 Топ 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
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