http://stackoverflow.com/questions/4197494/java-final-keyword-for-variables
In Java, the term final refers to references while immutable refers to objects. Assigning the final modifier to a reference means it cannot change to point to another object, but the object itself can be modified if it is mutable.For example:final ArrayList arr = new ArrayList();arr.add("hello"); // OK, the object to which arr points is mutatedarr = null; // Not OK, the reference is final and cannot be reassigned toAs the Wikipedia article mentions, if you are coming from C++, you must dissociate the concept of const into final and immutable.