Hi everyone! The String class has getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) which is used to efficiently extract substrings, avoiding unnecessary copying. The AbstractStringBuilder has the method with the same signature. I propose to add a default implementation of this method to the CharSequence interface. It can used, for example, in AbstractStringBuilder.append(CharSequence s, int start, int end) instead of the for-loop. This, in turn, allows to simplify AbstractStringBuilder.append(CharSequence s). In the webrev, I also included a few optimizations of the kind: stringBuilder.append(string.substring(from, to)) => stringBuilder.append(string, from, to). The later variant becomes more effective after the proposed fix. BUGURL: https://bugs.openjdk.java.net/browse/JDK-8077242 WEBREV: http://cr.openjdk.java.net/~igerasim/8077242/00/webrev/ If people agree that this change is useful, I'll file a CCC request. Sincerely yours, Ivan