Для некоторого проекта парсера байтового кода Java я прочитал спецификацию JVM и выяснил, что значения битовой маски класса виртуальной машины Java Поля модификатора доступа к формату файла:
ACC_PUBLIC = 0x0001
ACC_FINAL = 0x0010
ACC_SUPER = 0x0020 # old invokespecial instruction semantics (Java 1.0x?)
ACC_INTERFACE = 0x0200
ACC_ABSTRACT = 0x0400
ACC_SYNTHETIC = 0x1000
ACC_ANNOTATION = 0x2000
ACC_ENUM = 0x4000
Почему-то я понятия не имею, для чего нужен 0x1000
. Я видел это однажды во внутреннем классе, но для всех внутренних классов, которые я проверял с тех пор, этот флаг никогда не устанавливался. Теперь вы понимаете, что означает этот флаг и где / когда он установлен?