Константа – это переменная, значение которой не может измениться после назначения. В Java нет встроенной поддержки констант, но модификаторы переменных static и final могут использоваться для их эффективного создания.
Константы могут сделать вашу программу более читаемой и понятной для других. Кроме того, константа кэшируется JVM, а также вашим приложением, поэтому использование константы может повысить производительность.
Статический модификатор
Это позволяет использовать переменную без предварительного создания экземпляра класса; статический член класса связан с самим классом, а не с объектом. Все экземпляры класса используют одну и ту же копию переменной.
Это означает, что другое приложение или main () может легко использовать его.
Например, класс myClass содержит статическую переменную days_in_week:
public class myClass {
static int days_in_week = 7;
}
Поскольку эта переменная статическая, ее можно использовать в другом месте без явного создания myClass объект:
публичный класс myOtherClass {
static void main (String [] args) {
System.out.println ( myClass.days_in_week);
}
}
Конечный модификатор
Последний модификатор означает, что значение переменной не может измениться. После того, как значение присвоено, его нельзя переназначить.
Примитивные типы данных (например, int, short, long, byte, char, float, double, boolean) можно сделать неизменяемыми/неизменяемыми с помощью модификатора final .
Вместе эти модификаторы создают постоянную переменную.
static final int DAYS_IN_WEEK = 7;
Обратите внимание, что мы объявили DAYS_IN_WEEK заглавными буквами после добавления модификатора final . Среди Java-программистов давняя практика – определять постоянные переменные заглавными буквами, а также разделять слова символами подчеркивания.
Java этого не требует. форматирование, но это позволяет любому, кто читает код, сразу же идентифицировать константу.
Возможные проблемы с постоянными переменными
В Java ключевое слово final работает так, что указатель переменной на значение не может измениться . Повторим: это указатель, который не может изменить место, на которое он указывает.
Нет гарантии, что объект, на который ссылаются, останется прежним, только то, что переменная всегда будет содержать ссылку на один и тот же объект. Если указанный объект является изменяемым (т.е. имеет поля, которые можно изменить), то постоянная переменная может содержать значение, отличное от того, что было изначально присвоено.