If a list is declared final as follows:
public final List myList = new ArrayList();
there's nothing to stop modifications to the list:
myList.add("value");
However, the following would not be possible:
myList = new ArrayList();
myList = someOtherList;