StringBuffer:
线程安全,必须要等到没有线程时才能对字符串进行操作可变字符序列的动态字符串,在内存中定义初始容量,在不超过容量时,只会有这一个内存中安全如果内部缓冲区溢出,则此容量自动增大
StringBuilder:
单线程的等价类,效率高,线程不安全,支持所有相同的操作,与StringBuffer使用相同。
创建对象
StringBuffer中的方法
String类中有一个char[]数组,这个数组就是用来存放字符串的,但是String中的这个char[]是final的,
后就不能变 StringBuffer类中也有一个char[]数组,但是StringBuffer中的这个char[]不是final的,也就是
说这个char[]在初始化后是可以改变的,所以StringBuffer中就有一些例如append这样的方法来改变StringBuffer.
例:
因为他们添加方式不同,举个简单的例子,String a = “abc”; a = a+”de”;第一个a和第二个a不是同一
没有任何关系,
而如果 StringBuffer a = “abc”;a=a+”de”,现在第二个a就是第一个a,在常量池中并没有生成新的对象,
而是直接在abc后面加上de,常量池中的对象变成了abcde
==比较的是地址
.equls比较的是内容