I have a question regarding the Java Memory Model. Here is a simple class presenting the problem:
public class Immutable
your example is not quite right. in order to get the final field assurance, you need:
public ImmutableIntArray() { int tmparray = new int[10]; for (int i = 0; i < 10; i++) { tmparray[i] = i; } array = tmparray; }