stringbuffer没有重写 equals方法 ,hashcode方法
所以上述两个方法 的比较 相当于== 地址比较
而string重写了,所以equals 比较的是内容
-----------------------------------------------------------
String 字符串常量 (操作少量的数据,主要用于定义字符串对象,字符串基本不变的情况下 )
StringBuffer 字符串变量(线程安全) (多线程 操作字符串缓冲区下操作 大量数据,主要用于字符串不断在变的)
StringBuilder 字符串变量(非线程安全)(单线程 操作字符串缓冲区下操作 大量数据)
三者在执行速度方面的比较:StringBuilder > StringBuffer > String
String 类型的改变,本质上是 生成了一个新的 String 对象,并改变引用,指向新对象
(不断的改变,相当于产生了大量无用对象,增加GC压力,浪费性能)
StringBuffer 对象本身进行操作;而不是生成新的对象 ,再改变对象引用;主要用于字符串的拼接
string拼接的一个特殊情况:
String S1 = “This is only a” + “ simple” + “test”; 其实就是:
String S1 = “This is only a simple test”; 不需要太多的时间了比buffer快