@HotSpotIntrinsicCandidate
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);
這個方法是用C語言實現的,底層速度很快,參數的含義下邊看實例說明:
public static native void arraycopy(
Object src, 複製的源數組
int srcPos, **從源數組的那個下標開始進行復制,需要複製多少看最後的長度參數**
Object dest, **複製的目標數組,看集合源碼,原數組和目標數組是一樣的,在複製之前已經進行過擴容操作**
int destPos, **從目標數組的那個下標開始,意思是從這個位置開始,把上邊已經複製過的數組替換到目標數組上**
int length 要複製的長度
);
看實驗代碼:
@Test
public void testArrayCopy(){
String[] src = {"a","b","c","d","e","","","","",""};
System.out.println(src.length);
System.arraycopy(src,1,src,2,8);
System.out.println(Arrays.toString(src));
src[1]="222";
System.out.println(Arrays.toString(src));
}
看運行結果:
10
[a, b, b, c, d, e, , , , ]
[a, 222, b, c, d, e, , , , ]