Для конечных переменных вы можете присвоить значение только один раз. Обычно это используется, если вы не хотите, чтобы значения переменных были изменены позже в вашей программе.
Статические переменные для каждого класса создается только один экземпляр, независимо от количества объектов этого класса создать.