static means there is only one copy of the variable in memory shared by all instances of the class. The final keyword just means the value can't be changed. Without final , any object can change the value of the variable. The program would run until it tried to change the "first" integer, which would cause an error.