StringBuffer(内部原理同StringBuilder一样,是多线程下的安全版本,因为加锁了,相对StringBuilder稍微慢一点儿)
凡是带buffer的内部实现都是基本类型数组。
StringBuffer :申请一个足够大的空间。
例如:char[] arr = new char[4096];
只要原来的空间足够,就不用申请新的空间。StringBuffer申请的空间有富裕。而字符串不一样,每次都要申请空间,字符串用多少申请多少,每次加完都要形成一个新的字符串。
它的空间消耗比较低,少很多无用功。
所有语言都有,都会支撑 都是基于字符数组的。