String,StringBuffer,StringBuilder的区别
String
String s = "abc";
String x = "de";
String z = s+x;//此处的z在java里面存放的地址上是新new出来的空间,地址s+地址x=地址z,这段代码保函了3个地址,而不是2个
··String被创建后是不能被改变的,只是又为新的String变量开辟了一个新地址用来存放2个看起来不是很新的String相加。
StringBuffer和StringBuilder
这2个的主要区别在于StringBuffer是线程安全的,证据在于StringBuffer的源码里面有synchronized这个关键字(这个关键字基本上可以代表线程安全),所以StringBuffer比StringBuilder是线程安全的(StringBuffer建议多线程使用),不过效率比StringBuilder低(建议单线程使用),各有个的好处,都不如别人的话肯定会被淘汰掉的
参考的文章太多,也不知道是看哪个了
根据网上其他大神的总结加上自己的理解,还有实验,小小的总结了一下