<p>In Java, there is a practice of declaring every variable (local or class), parameter final if they really are.</p>

<p>Though this makes the code a lot more verbose, this helps in easy reading/grasping of the code and also prevents mistakes as the intention is clearly marked.</p>

<p>What are your thoughts on this and what do you follow?</p>

I have never been in a situation where having a final keyword on a variable has stopped me from making a mistake, so for the moment I think it's a giant waste of time.
Unless there is a real reason for doing it (as in you want to make a specific point about that variable being final) I would rather not do it since I find it makes the code less readable.
If, however, you don't find it makes the code harder to read or longer to write then by all means go for it.
Edit:
As a clarification (and an attempt to win back down-votes), I'm not saying don't mark constants as final, I'm saying don't do stuff like:
```
```
public String doSomething() {
  final String first = someReallyComplicatedExpressionToGetTheString();
  final String second = anotherReallyComplicatedExpressionToGetAnother();

  return first+second;
}
```
```
It just makes code (in my opinion) harder to read.
It's also worth remembering that
all
final does is prevent you from reassigning a variable, it doesn't make it immutable or anything like that.