В чем разница между "static final" VS "final"?

257
27 ноября 2021, 10:10

static final и final.

Оба значения константы и изменению не подлежат.

В чем же разница?

Answer 1

final - значит неизменяемая, если быть точнее, то разрешается только одна операция присвоения

static - означает единая для всех экземпляров класса.

class Foo {
    static final int FOO1=1;
    final int foo2;
}

В данном примере:

  • для всех экземпляров класса Foo переменная FOO1 всегда будет равна 1
  • переменная foo2 - может быть разной для разных экземпляров класса Foo

При этом оба безусловно неизменяемые.

Answer 2

Начнем с общего. static и final являются модификаторами.

На этом пожалуй всё.

Static - с англ. "статичный", "постоянный" - делает переменную или метод "независимыми" от объекта. Link

А суть модификатора final - сделать дальнейшее изменение объекта невозможным. Link

Т.е. Эти модификаторы находятся совсем в разных плоскостях взаимодействия на то, к чему они были пременены.

Это и является ответов на Ваш вопрос.

Если же вы хотите понять, что такое static и final и с чем это всё едят, то рекомендую ознакомиться ссылками представленные выше. Так как не возможно описать эти модификаторы один предложения не целяя за собой ряд тем. Уже всё хорошо описано в книгах по теме или же смело гуглить по каждому модификатору.

READ ALSO
Как передать список MultipartFile в контроллер?

Как передать список MultipartFile в контроллер?

У меня есть такой контроллер (поменять его не могу):

201
Не отображаются предметы в RecycleView

Не отображаются предметы в RecycleView

я новичок в Android StudioЯ делаю приложение заметочник, используя RecycleView и для сохранения заметок SQLite

100
LinkedHashMap что делает порядок доступа

LinkedHashMap что делает порядок доступа

У нас есть стандартный конструктор LinkedHashMap

132