How Does System.arraycopy Work