JDK1.7重新设计了String类,各个String对象各自维护一个属于自身的char数组,下面是该类中的toCharArray方法的实现源码: public char[] toCharArray() { // Cannot use Arrays.copyOf because of class initialization order issues char result[] = new char[value.length]; System.arraycopy(value, 0, result, 0, value.length); return result; } 这个方法中有一段注释,说不能使用Arrays.copyOf方法来实现,请问为什么?在下不太明白注释中的解释,还请高手指教:)。 另外,在String的以char[]为参数的构造方法中却正常地使用了Arrays.copyOf方法。源码如下: public String(char value[]) { this.value = Arrays.copyOf(value, value.length); } 为什么toCharArray不能用Arrays.copyOf来实现?为什么构造方法就可以了呢?请高人解惑呀:)。 |
|