Технически, ни одна из них не является константой (см. Определение константного выражения ).Значение константы известно во время компиляции.Я полагаю, что соглашение об именах в верхнем регистре с подчеркиванием применимо только к фактическим константам, а не только к любому полю static final
.Что касается того, почему они не являются константами, они, конечно, зависят от файловой системы, и их нужно искать в текущей файловой системе во время выполнения.
(Однако в коде Java очень распространено использованиеодинаковое соглашение об именах для всех полей static final
независимо от того, являются ли они технически постоянными или нет.)