Why are local variables not declared final in most open source java projects?-Collection of common programming errors
As far as I’m aware, the final keyword has no impact on the runtime performance of your variables.
I believe it’s primary purpose is to assist you in the catching of bugs. If you know something is never going to change, you mark it as such. Similar to why we use annotations where we can, any time we can trade a runtime bug for a compile time error, we do. Finding an error when you’re working on it, and it’s fresh in your mind, and it hasn’t gone and corrupted someone’s data causing you to lose customers, yeah that’s a very good thing. You get the compile error, you fix it, you move on, you don’t break the nightly build, yeah those are good things.