In Java the only place to my knowledge where the
final keyword is required is to make a variable reliably available to an anonymous class (since the compiler does some trickery under the covers requiring that this value cannot change).
It is - to my knowledge - a myth that the final keyword allows the Java compiler to optimize code, as all optimizations that matter happen in the JIT part of the runtime.
It is therefore a matter of taste. There is, however, one very significant benefit for using lots of finals, namely to make the code easier to read for future maintainers.
Marking a variable as
final tells the reader that this variable never, ever changes when assigned. This is very important when reading code as you know when you need to know the value of the variable that it is the same as in the initial assignment and do not have to mentally parse all the code in between to see if the variable is assigned again with something else.
Also if you see that a variable is not marked with
final you know that it will be changed further on! This is an extremely important piece of information that can be conveyed to the reader simply by having five characters missing.
Anything that can help the maintainer do his/her job faster and more reliably mean that the application is cheaper to maintain! In other words,
final saves real money.
Note: Eclipse has a "source clean-up" option which can insert finals where possible. This might be helpful both for writing new code, and for maintaining old (insert finals, if some are missing the variable is changed after initial assignment). My gut feeling is that this is what the original author discovered and decided to use.
The subject is discussed further at https://stackoverflow.com/q/316352/53897