1. StringBuffer和StringBuilder的相同点
- 都继承AbstractStringBuilder类
- StringBuffer和StringBuilder都是内容可变的
- StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象
2. StringBuffer和StringBuilder的不同点
- StringBuffer是线程安全的,StringBuilder是线程非安全的
- StringBuilder的效率高于StringBuffer
package com.practice; import java.util.Arrays; /** * 可变字符串 * * @author yyx 2019年8月28日 */ public class Practice { public static void main(String[] args) { /* * @Override * public synchronized String toString() { * if (toStringCache == null) * { * toStringCache = Arrays.copyOfRange(value, 0, count); * } * return new String(toStringCache, true); * } */ StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append("中国"); stringBuffer.append("China"); System.out.println(stringBuffer.toString()); /* * @Override public String toString() { return new String(value, 0, count); } */ StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("中国"); stringBuilder.append("China"); System.out.println(stringBuilder.toString()); } }