System.arraycopy方法小總結

@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, , , , ]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章