<div dir="ltr">Most recent version as of 3:08 AM. Saved a lot on memory, I had tried before, and got errors, but here goes.  Note the difference in the mutable list in the two runs.  <div><br></div><div>Hopefully, this version will do any number of instantiations, which may also be idepotent, if you don't change the underlying array.<br><div><br></div><div>package net.coderextreme;<br><br>import java.util.ArrayList;<br>import java.util.List;<br>import java.util.Arrays;<br>import java.util.Collections;<br><br>public class NoModDoubleArray {<br>    private static final double[] DOUBLE_ARRAY_FIELDOFVIEW_DEFAULT_VALUE = new double [] {-1f,-1f,1f,1f};<br>    public static final List<Double> NOMOD_FIELDOFVIEW_DEFAULT_VALUE = Collections.unmodifiableList(Arrays.asList(Arrays.stream(DOUBLE_ARRAY_FIELDOFVIEW_DEFAULT_VALUE).boxed().toArray(Double[]::new)));<br>    public NoModDoubleArray() {<br>      List<Double> MOD_FIELDOFVIEW = Arrays.asList(Arrays.stream(DOUBLE_ARRAY_FIELDOFVIEW_DEFAULT_VALUE).boxed().toArray(Double[]::new));</div><div>     System.out.println("Immutable Array "+NOMOD_FIELDOFVIEW_DEFAULT_VALUE);</div><div>     System.out.println("Mutable Array "+MOD_FIELDOFVIEW);</div><div>     try {</div><div>      System.out.println("Setting immutable index 0 to 0.0");</div><div>      NOMOD_FIELDOFVIEW_DEFAULT_VALUE.set(0, 0.0);</div><div>     } catch (UnsupportedOperationException ex) {</div><div>      ex.printStackTrace();</div><div>     }</div><div>    System.out.println("Immutable Array "+NOMOD_FIELDOFVIEW_DEFAULT_VALUE);</div><div>    System.out.println("Mutable Array "+MOD_FIELDOFVIEW);</div><div><br>    System.out.println();</div><div>    System.out.println("Setting double array index 0 to 0.0");</div><div><br></div><div>###############  This is a very BAD thing to do.</div><div>    DOUBLE_ARRAY_FIELDOFVIEW_DEFAULT_VALUE[0] = 0.0;</div><div>    System.out.println("Immutable Array "+NOMOD_FIELDOFVIEW_DEFAULT_VALUE);</div><div>    System.out.println("Mutable Array "+MOD_FIELDOFVIEW);</div><div>    System.out.println("Compare mutable to immutable "+MOD_FIELDOFVIEW.equals(NOMOD_FIELDOFVIEW_DEFAULT_VALUE));</div><div><br>     System.out.println();</div><div>     System.out.println("Setting mutable index 1 to 0.0");</div><div>    MOD_FIELDOFVIEW.set(1, 0.0);</div><div>    System.out.println("Immutable Array "+NOMOD_FIELDOFVIEW_DEFAULT_VALUE);</div><div>    System.out.println("Mutable Array "+MOD_FIELDOFVIEW);</div><div>    System.out.println("Compare mutable to immutable "+MOD_FIELDOFVIEW.equals(NOMOD_FIELDOFVIEW_DEFAULT_VALUE));</div><div>  }<br>  public static void main(String[] args) {<br>      new NoModDoubleArray();</div><div>      System.out.println("---------------------------------------------");</div><div>      new NoModDoubleArray();</div><div>  }<br>}<br><br></div></div></div>