publicclassTest_67_StringBuffer与StringBuilder{publicstaticvoidmain(String[] args){//1、StringBuffer的使用//StringBuffer比StringBuilder多了一个toStringCache字段,//用来在toString方法中进行缓存,连续调用toString方法,可节省性能。StringBuffer s =newStringBuffer("abc");
s.append("def");//直接修改对象本身,在结尾附加def字符串System.out.println("s="+s);//s=abcdef
s.reverse();System.out.println("s="+s);//s=fedcba//Stringbuffer 没有重写equals()方法,如果要比较值是否相等,需要先转为字符串再比较StringBuffer s1 =newStringBuffer("abc");StringBuffer s2 =newStringBuffer("abc");System.out.println("s1.equals(s2) is "+s1.equals(s2));//s1.equals(s2) is falseSystem.out.println("s1.equals(s2) is "+s1.toString().equals(s2.toString()));//s1.equals(s2) is true//2、StringBuilder的使用(与StringBuffer一样)}}
#**StringBuffer与StringBuilder**##相关代码注解public class Test_67_StringBuffer与StringBuilder {/* 不同之处1、StringBuffer多线程安全,但是加了synchronized,其效率低。适用于多线程下,并发量不是很高的场景2、StringBuilder多线程不安全,没有加任何锁,其效率高。适用单线程场景且由于StringBuilder没有考虑同步,在单线程情况下,性能要优于StringBuffer*/