==, даже после десериализации и в многопоточной среде. Скомпилированный класс неявно наследуется от
java.lang.Enum, в котором все методы из Object кроме toString объявлены финальными. В частности, невозможно изменить поведение метода equals – он сравнивает enum-ы с помощью ==. Так что equals тоже можно использовать без опаски.Но помимо этого есть несколько отличий в пользу ==:
1. == не выбросит
NullPointerException. Прежде чем вызывать equals у переменной, придется удостовериться что она не null. 2. == не позволит сравнить объекты разных типов. Оператор еще на этапе компиляции подскажет, что такое сравнение не имеет смысла.
equals же будет принимать аргумент под типом Object, и всегда возвращать false уже в рантайме. 3. == быстрее. Скорее всего разница в производительности будет незаметной, но тем не менее, оператор не требует лишнего вызова метода.