[java] How does the "final" keyword in Java work? (I can still modify an object.)