Okay I have the two java-classes:
public class MaximumNormalize {
    public static void display(double z1, double z2) {
       System.out.println("doubles are "+z1+" and "+z2);
    }
    public static void display(double[] zahlen) {
       System.out.println("double-array with length "+zahlen.length+" :");
       for (int i=0; i<zahlen.length; i++) {
           System.out.println("Element "+i+" is "+zahlen[i]);
       }
    }
    public static double maximum (double z1, double z2) {
       if (z1>=z2) return z1;
       else return z2;
    }
    public static double maximum (double[] zahlen) {
       double ret = 0;
       for (int i = 0; i < zahlen.length; i++) {
           if (ret < zahlen[i]) ret = zahlen[i];
       }
       return ret;
    }
    public static void normalize (double z1, double z2, double diff) {
       z1 /= diff;
       z2 /= diff;
    }
    public static void normalize (double[] zahlen, double diff) {
       for (int i = 0; i < zahlen.length; i++) {
           zahlen[i] /= diff;
       }
    }
}
 
public class TestMaximumNormalize {
    public static void main (String[] args) {
       double[] meineZahlen = {6.5, 7.0, 6., 5.5, 6.5, 7.5};
       double x1 = 10.5;
       double x2 = 9.5;
       System.out.println("before:");
       MaximumNormalize.display(x1, x2);
       MaximumNormalize.display(meineZahlen);
       double maximumEinzeln;
       maximumEinzeln = MaximumNormalize.maximum(x1, x2);
       MaximumNormalize.normalize(x1, x2, maximumEinzeln);
       double maximumVomArray;
       maximumVomArray = MaximumNormalize.maximum(meineZahlen);
       MaximumNormalize.normalize(meineZahlen, maximumVomArray);
       System.out.println();
       System.out.println("after:");
       MaximumNormalize.display(x1, x2);
       MaximumNormalize.display(meineZahlen);
      }
}
Why does the double-array store the normalized values? I would have expected that nothings changes since the normalize-method is a void. However, the array receives the new values, the doubles don't.
 
     
     
    