System.arraycopyの仕組みを正確に理解できません。私は "[0]を配置するcopyArrする[0]から始まるARRからコピー1要素" のようにそれを理解System.arraycopyはArrayIndexOutOfBoundsExceptionをスローしません
String[] arr = {"a"};
String[] copyArr = new String[10];
System.arraycopy(arr, 0, copyArr, 0, 1);
System.out.println(Arrays.toString(copy));
:簡単な例を持っています。そしてこれは大丈夫です。 arr.lengthが1であり、我々が呼び出すことができる唯一のインデックスは[0]私はそれがは、ArrayIndexOutOfBoundsExceptionがスローされますが、そうでないことが期待されているので
String[] arr = {"a"};
String[] copyArr = new String[10];
System.arraycopy(arr, 1, copyArr, 0, 0);
System.out.println(Arrays.toString(copy));
:今、私はそれを変更します。
したがって、以下の2行の違いは何ですか?また、srcの[1]に要素がない場合(最初の長さが1であるため)、最初の理由が可能です内部的に実装されていますか?我々はそれを変更したときに面白いです何
System.arraycopy(src, 1, dest, 0, 0);
System.arraycopy(src, 0, dest, 0, 0);
:
System.arraycopy(src, 2, dest, 0, 0);
はArrayIndexOutOfBoundsExceptionがあります(この場合はsrcPos +長さ> src.lengthためのドキュメントに記述されています)。
なので?それともそれを知りたいのですか? – Tunaki