问题描述:-在一次讨论中,我发现程序员停滞不前,我认为我应该加入论坛。
今天,我正在将数组转换为char数组。然后,我检查了字符串类的 toCharArray()方法的定义。
char str[] = "native".toCharArray();
toCharArray()定义:-
public char[] toCharArray() {
char result[] = new char[count];
getChars(0, count, result, 0);
return result;
}
getChars定义:-
public void getChars(int srcBegin,int srcEnd,char dst[],int dstBegin){
if(srcBegin<0){
throw new StringIndexOutOfBoundsException(srcBegin);
}
if(srcEnd>count){
throw new StringIndexOutOfBoundsException(srcEnd);
}
if(srcBegin>srcEnd){
throw new StringIndexOutOfBoundsException(srcEnd-srcBegin);
}
System.arraycopy(value,offset+srcBegin,dst,dstBegin,srcEnd-srcBegin);
}
然后是本机方法:-
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);
在这里,我不必了解本机,但我必须知道在这种本机方法中,以相同的方式在此定义其他操作系统的本机方法。
最佳答案
之所以是本机的,是因为可以使用本机代码对本来很昂贵的功能进行大量优化。
但是无论使用哪种操作系统,其行为都是相同的。