Except newbie programmers should keep in mind that final is not simply synonymous with immutability.
final ArrayList x = new ArrayList(); // x is final, so it can't be reassigned
x.add( "foo" ); // but we can still modify its contents