With a primitive, final makes the value a constant, however with an object reference, final makes the reference a constant
This is a very common myth that causes confusion in different contexts.
One that immediately springs to mind is the Sun Coding Convention for constants (which applies to constants, not finals).
To draw an analogy between a constant and a final is like drawing an analogy between a wheel and a car. They are not the same thing, but they are related.
A constant is very well defined in JLS 15.28.
A constant is not the same thing as a final.