public AbstractStringBuilder append(String str) {
if (str == null) str = "null";
int len = str.length();
if (len == 0) return this;
int newCount = count + len;
if (newCount > value.length)
expandCapacity(newCount);
str.getChars(0, len, value, count);
count = newCount;
return this;
}

まずよくみると、append()したい文字列がnullであればnullという文字が代入される。
ここでappendするのは何かが入ったstrという文字列。よって無視される。
つぎに文字列の長さをlenに代入。
つぎに、文字列長がゼロであればそのまま自分自身を帰して終わる。
つまり、空文字列""をappend()しても特に何も変化が無いということ。
次にcountにappendしたい文字列の長さを加える。
countはゼロなのでlenが3だとするとcountは3になる。
ここでvalue.lengthとこの3とを比較する。
当然現在の配列の長さは初期値である16(value.length==16)なので何も変化は無し。

そしてStringクラスのgetCharメソッドを呼び出す。
このメソッドは、興味深いことにSystem.arrayCopy()を使ってchar[]配列を別の配列を
コピーしていることがわかる。
public void getChars(int srcBegin, int srcEnd, char dst[], int dstBegin) {
   //例外処理を省略
System.arraycopy(value, offset + srcBegin, dst, dstBegin,
srcEnd - srcBegin);
}