下面来自jdk中src/java/lang下的String类的构造函数String(char value[])方法源码,反斜线//后面的部分为个人注释
public String(char value[]) {
this.offset = 0;
this.count = value.length;
this.value = StringValue.from(value); //使用StringValue类中的from方法
}
下面来自jdk中src/java/lang下的StringValue类的from(char value[])方法源码:
static char[] from(char[] value) {
return Arrays.copyOf(value, value.length); //调用Arrays类的copyOf方法
}
下面来自jdk中src/java/util下的Arrays类的copyOf(char[] original, int newLength)方法源码:
public static char[] copyOf(char[] original, int newLength) {
char[] copy = new char[newLength];
System.arraycopy(original, 0, copy, 0,
Math.min(original.length, newLength));//调用System类的arraycopy方法
return copy;
}
下面来自jdk中src/java/lang下的System类的arraycopy方法源码:
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);
通过上面代码的查看加深了以下两点问题的理解:
1.传说中的native方法是什么,怎么用,可见如下两个链接:
http://www.blogjava.net/shiliqiang/articles/287920.html。
http://blog.csdn.net/jiakw_1981/article/details/3073613。
2.为什么要用native方法,此文是为什么用本地方法arraycopy,可见如下文章: