char[] a = .......;
char[] b = ......char[] t = a;
a = new char[a.length + b.length]
System.arraycopy(t, 0, a, 0, t.length);int i = t.length;
for (int i = t.length, j = 0 ; j < b.length; ++i, ++j) {
    a[i] = b[j];
}.............
再往后加字符串是一样的道理,首先扩充数据大小,再拷贝原数组内容过去,再往后面的空间加东西。
如果你能一次把大小申明足够,就不过扩展那么麻烦了如果像这样处理字符,还不如用 StringBuffer 方便 
StringBuffer buffer = new StringBuffer();
buffer.append(a);
buffer.append(b);
buffer.append("china");
buffer.append(c, c.length() - 3, 3);a = buffer.toString().toCharArray();