System.arraycopy();
时间: 2024-09-07 22:03:07 浏览: 15
`System.arraycopy()` 是Java语言中提供的一个用于数组复制的方法。它属于 `System` 类,是一个静态方法,可以在程序的任何地方被调用,而不需要创建 `System` 类的实例。这个方法可以实现数组内元素的快速复制,使用这个方法进行数组复制通常比手动循环复制要快很多。
该方法的定义如下:
```java
public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
```
- `src`:源数组。
- `srcPos`:源数组开始复制的位置。
- `dest`:目标数组。
- `destPos`:目标数组开始存储的位置。
- `length`:需要复制的元素数量。
使用 `System.arraycopy()` 方法时需要注意以下几点:
1. 两个数组必须是相同类型,或者至少其中一个必须是 `Object` 类型。
2. 源数组和目标数组不能为 `null`,否则会抛出 `NullPointerException`。
3. `srcPos`、`destPos` 和 `length` 参数必须在各自数组的有效范围内,否则可能会抛出 `IndexOutOfBoundsException`。
4. 目标数组的指定复制起始位置到末尾的空间应该足够存放源数组中指定长度的元素。
例如,将一个整型数组的前5个元素复制到另一个同样长度的数组的第3个位置开始的地方:
```java
int[] srcArray = {1, 2, 3, 4, 5, 6, 7};
int[] destArray = new int[7];
System.arraycopy(srcArray, 0, destArray, 3, 5);
```
复制后 `destArray` 的内容将会是 `{0, 0, 0, 1, 2, 3, 4}`。