Большинство выпускников, которые только что закончили обучение в области компьютерных наук, инженерии и информационных технологий, будут хорошо знать Java. Но большинство из них не слышали о термине «маркерный интерфейс». Даже если мало кто знает, что такое маркерный интерфейс, они не будут знать его назначение. Поэтому в этом посте я дам подробное описание интерфейса маркера.

Маркерный интерфейс — это интерфейс, в котором ничего нет. В нем нет никаких методов или полей. Основная цель интерфейса маркера — указать компилятору по-разному обрабатывать класс Java с интерфейсом маркера. Это означает, что компилятор Java (JVM) обеспечивает специальное поведение для этого класса во время выполнения. Он просто сообщает компилятору, что этот класс имеет особое поведение и должен обрабатываться по-другому.

Некоторыми примерами интерфейса маркера являются Cloneable, EventListener, Serializable и так далее. Когда интерфейс Serializable реализуется в классе, это означает, что мы намекаем JVM (Java Virtual MAchine), что существует некоторая возможность сериализации этого класса. Точно так же все другие интерфейсы маркеров имеют собственное значение, передаваемое JVM.

Вышеупомянутые примеры интерфейса маркера являются предопределенным интерфейсом в java. Следующий вопрос будет о пользовательском интерфейсе маркера. В java невозможно создать определяемый пользователем интерфейс маркера, потому что невозможно указать JVM, что конкретный класс ведет себя по-разному во время выполнения.