В JDK-источнике java.lang.String.toCharArray
он не использует Arrays.copyOf
для реализации этого, и он говорит:
Невозможно использовать Arrays.copyOf из-за проблем с порядком инициализации класса
Каковы "проблемы с порядком инициализации класса"?
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;
}