Это просто не имеет смысла, если вы используете так же, как это:
int[] local = somethingElse;
... // changes to local will reflect on somethingElse
Это имело бы смысл, если реальная копия будет сделано, как:
int[] local = Arrays.copyOf(somethingElse,somethingElse.lenght())
... // changes to local will not reflect on somethingElse
копия может предотвратить изменение элементов, которые вам понадобятся в вашем методе, вызывающие другие методы или другие помехи потоков. В случае, если у вас есть, например, метод, который изменяет эти элементы, вызываемые одновременно, вы используете их. Таким образом, вы можете сделать копию и работать с ними, не заботясь о применяемой к ней модификации.
тест можно сделать с помощью следующего кода:
int[] test = new int[] {1,2,3};
int[] test2 = Arrays.copyOf(test,test.length);
test2[0] = 9;
System.out.println(Arrays.toString(test));
Возможно, они думают, что он немного быстрее (что может быть). Или, возможно, чтобы избежать проблем с потоками. – Thilo
@scrappedcola, если я изменю 'foo [0] = 5' то же самое будет отражено и в mFoo. – tomi
@Thilo Threading вопросы? Можете ли вы объяснить, как это помогает? –