![](https://csdnimg.cn/release/download_crawler_static/86915421/bg8.jpg)
StringBuffer是同步的,所以线程安全,但是效率低,StringBuilder是不同步的,所以
线程不安全,但是效率高。StringBuilder要比StringBuffer快。单线程的程序使用String
Builder比较好,多线程的情况下可以自己加锁,也可以 直接使用StringBuffer。
25. String和StringBuffer区别
String对象一经创建就不会发生变化了,即便是赋新值也不是在原对象的基础上改变,
而是创建一个新的字符串对象,将引用指向这个新的对象,会导致空间的浪费,效率
较低。StringBuffer只创建一个对象,是在同一个实例的基础之上追加,效率更高,当
需要用到String的时候toString就可以了
第二部分 知识点
26. 说明Java中String str=null与String str=""的区别?
String str = null 表达声明了一个String对象的引用str,但是没有为其分派内存空间。
String str = ""
表达创建了一个长度等于0的空字符串,并在内存中为其分派了内存空间。
String str = new String("tw"); str在内存中有两个对象,1.堆内存有一个 new Sting
2.常量池中有一个字符串。