В чем разница между
-  
System.arraycopy(), -  
clone() - ручное копирование путем итерации через элементы
 -  
Arrays.copyOf() -  и просто делать 
arraynew = arrayold? 
В чем разница между
System.arraycopy(),clone()Arrays.copyOf()arraynew = arrayold?System.arraycopy() использует JNI (Java Native Interface) для копирования
массив (или его части), так что это
невероятно быстро, как вы можете подтвердить
здесь;clone() создает массив  new с теми же характеристиками, что и старый массив, т.е. тот же размер, тот же тип и одно и то же содержимое. Обратитесь к здесь для некоторых примеров clone в действии;manual copying - это, конечно, ручное копирование. Об этом методе говорить нечего, за исключением того, что многие люди считают его наиболее эффективным .arraynew = arrayold  не копирует массив; он просто указывает arraynew на адрес памяти arrayold или, другими словами, вы просто присваиваете старый массив .System.arraycopy() копирует данные из одного существующего массива в другой и в зависимости от аргументов копирует только его части.clone() выделяет новый массив, который имеет тот же тип и размер, что и оригинал, и гарантирует, что он имеет тот же контент.System.arraycopy(), но это больше кода и, следовательно, более мощный источник ошибокarraynew = arrayold только копирует ссылку на массив на новую переменную и не влияет на сам массивЕсть еще одна полезная опция:
 Arrays.copyOf() можно использовать для создания копии другого массива другого размера. Это означает, что новый массив может быть больше или больше исходного массива, а содержимое общего размера будет иметь размер источника. Там даже версия, которая позволяет создавать массив другого типа и версию, где вы можете указать диапазон элементов для копирования (Array.copyOfRange()).
Обратите внимание, что все эти методы делают мелкие копии. Это означает, что только ссылки, хранящиеся в массивах, копируются, а ссылочные объекты не дублируются.
Arrays.copyOf(..) использует метод System.arrayCopy(..) внутри.
Есть ответы, но не полные.
Рассматриваемые варианты:
Ниже приведена реализация Java в Arrays.copyOf()
public static double[] More ...copyOf(double[] original, int newLength) {
        double[] copy = new double[newLength];
        System.arraycopy(original, 0, copy, 0,
                         Math.min(original.length, newLength));
        return copy;
   }
Как вы можете видеть, copyOf внутренне использует System.arraycopy.
Примечание. Нет смысла сравнивать скорость, очевидно, потому что их функциональность отличается.