Константа static + final, или только final?

163
01 февраля 2020, 11:30

Чтобы создать константу в Java, нужно пометить переменную сразу двумя модификаторами: static и final. Прочитал это в книге, а если просто переменную final помечаю, тогда у меня что не константа получается?

Answer 1

final достаточно для создания константы. static используется для того, чтобы хранить константу в памяти один раз, а не столько раз, сколько создано экземпляров класса (см. выши предыдущие вопросы).

Answer 2

Ключевое слово - final заставляет вас проинициализировать переменную сразу же, или в конструкторе, так же для переменных примитивного типа это означает, что однажды присвоенное значение не может быть изменено, и да, ключевое слово final определяет константу, ивозможно у Вас появится вопрос как final работает не с примитивами, так вот, final запрещает переопределять метод, и наследоваться от класса. При использовании final на ссылочном типе данных константой является ссылка, а не сам объект. Неизменяемость или Immutable объекта достигается за счет удаление методов модификации данных.

READ ALSO
Как добавить toolbar в listActivity

Как добавить toolbar в listActivity

После того как поменял extends с appCompatActivity на listActivity, метод setSupportActionBar стал светиться краснымЧто делать? Может быть что нибудь поменять в коде?...

190
Appium+Selenium(Java) - Не работает поиск по локаторам в react native app

Appium+Selenium(Java) - Не работает поиск по локаторам в react native app

При запуске теста на нашем приложении возвращает null pointer exception

185
Кэширование сообщений в мессенджере

Кэширование сообщений в мессенджере

Делаю свой мессенджер в целях самообучение, сделал рабочий прототип с базовыми возможностямиДалее встал вопрос о экономии трафика и кэшировании...

154
UnsatisfiedLinkError при работе с javacpp FaceRecognizer

UnsatisfiedLinkError при работе с javacpp FaceRecognizer

При запуске приложения с классом FaceRecognizer появляется следующая ошибка

197