2.StringBuffer:线程安全的可变字符串序列

Posted 与君共舞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.StringBuffer:线程安全的可变字符串序列相关的知识,希望对你有一定的参考价值。

一、String、StringBuffer和StringBuilder的区别

1.String是内容不可变的,而StringBuffer和StringBuilder都是内容可变的。

2.StringBuffer是同步的,数据安全,效率低;StringBuilder是不同步的,数据不安全,效率高。

二、StringBuffer的方法

1.添加:append(),insert()

2.删除:deletecharAt(),delete()

3.替换:replace()

4.反转:reverse()

5.截取:subString()(返回值类型String)

三、.StringBuffer和String的相互转换

  1. /* String -- StringBuffer */
  2. //方式1:通过构造方法
  3. String s = "hello";
  4. StringBuffer sb = new StringBuffer(s);
  5.                //方式2:通过append方法
  6. String s2 = "hello";
  7. StringBuffer sb2 = new StringBuffer();
  8. sb2.append(s);
  1.                //StringBuffer ---String
  2. //方式1:通过构造方法
  3. StringBuffer buffer = new StringBuffer("hello");
  4. String str = new  String(buffer);
  5. //方式2:通过toString()方法
  6. String str2 = buffer.toString();

四、String和StringBuffer作为形参传递(要特别注意)

String做为形参传递,效果和基本数据类型一致。

  1. public class StringTest {
  2. public static void main(String[] args) {
  3.    String s1 = "hello";
  4.    String s2 = "world";
  5.    System.out.println(s1+"===="+s2);//hello====world
  6.    change(s1,s2);
  7.    System.out.println(s1+"===="+s2);//hello====world
  8.    
  9.    StringBuffer sb1 = new StringBuffer("hello");
  10.    StringBuffer sb2 = new StringBuffer("world");
  11.    System.out.println(sb1+"======"+sb2);//hello====world
  12.    change(sb1,sb2);
  13.    System.out.println(sb1+"======"+sb2);//hello======worldworld
  14. }
  15. public static void change(StringBuffer sb1, StringBuffer sb2) {
  16. sb1 = sb2;
  17. sb2.append(sb1);
  18. }
  19. public static void change(String s1, String s2) {
  20. s1 = s2;
  21. s2 = s1 + s2;
  22. }
  23. }







以上是关于2.StringBuffer:线程安全的可变字符串序列的主要内容,如果未能解决你的问题,请参考以下文章

JAVA常用类_StringBuffer和StringBuilder

StringBuffer()的基本使用

Java API_StringBuffer类

12.时间日期,字符串,内部类,拆装箱

StringBuffer和StringBuilder区别?

Java基础13---StringBufferArrays包装类