1.区别
StringBuilder速度较快,但适用于单线程。
StringBuffer相对StringBuilder速度慢些,但是在多线程里经常使用。
2.StringBuffer的用法
(1).StringBuffer对象的初始化
StringBuffer s = new StringBuffer("abc");
(2).追加 该方法的作用是追加内容到当前StringBuffer对象的末尾,类似于字符串的连接。
StringBuffer sb01 = new StringBuffer();
String user = "root";
String pwd = "root";
sb01.append("select * from userInfo where username=").append(user).append(" and pwd=").append(pwd);
System.out.println(sb01);
(3).deleteCharAt方法 该方法的作用是删除指定位置的字符,然后将剩余的内容形成新的字符串
StringBuffer stringBuffer2 = new StringBuffer("YZPString");
/*stringBuffer2.delete(1, 6);*/
stringBuffer2. deleteCharAt(1);
System.out.println(stringBuffer2);
(4).insert方法 该方法的作用是在StringBuffer对象中插入内容,然后形成新的字符串
StringBuffer sb = new StringBuffer("TestString");
sb.insert(4,false);
System.out.println(sb);
(5).reverse方法 该方法的作用是将StringBuffer对象中的内容反转,然后形成新的字符串
StringBuffer stringBuffer3 = new StringBuffer("闫 旭");
stringBuffer3.reverse();
System.out.println(stringBuffer3);
(6).setCharAt方法 该方法的作用是修改对象中索引值为index位置的字符为新的字符ch
StringBuffer sb02 = new StringBuffer("abc");
sb02.setCharAt(2, 'D');
System.out.println(sb02);
2.Stringbuilder用法
(1).优点
//第一:他不需要每次都去分配内存空间。所以系统就没有必要去处理垃圾;
//第二:当我们需要多次的对一个字符串进行多次操作的时候,他的效率要远远 高 与string
String aa = "123456";
aa += "7890";
System.out.println(aa);
(2).末尾追加
StringBuilder text = new StringBuilder("123456");
text.append("7890");