Why won't declaring an array final make it immutable in Java?
Why won't declaring an array final make it immutable in Java? Doesn't declaring something final mean it can't be changed? From question related to immutable array it's clear that declaring an array final doesn't make it unchangeable. The following is possible. final int[] array = new int[] {0, 1, 2, 3}; array[0] = 42; My question is: What is the function of declaring final here then? final is only about the reference that is marked by it; there is no such thing as an immutable array in Java. When you say private final int[] xs = new int[20]; you won't be allowed to say xs = new int[10]; later