public static int [] arrayMax(int[]a, int[]b){
if (a.length>b.length){
b=a;
}
return b;
}
tolto il primo scambio che non ha senso. Comunque mettici direttamente un return a; else return b;. Cambiare il valore delle variabili passate come parametro per fare questa cosa non mi sembra il caso.