StringBuffer

StringBuffer和String的区别?
  前者长度和内容可变,后者不可变。
  如果使用前者做字符串的拼接,不会浪费太多的资源。

StringBuffer的构造方法:
         public StringBuffer():无参构造方法
         public StringBuffer(int capacity):指定容量的字符串缓冲区对象
         public StringBuffer(String str):指定字符串内容的字符串缓冲区对象

    默认容量为16

添加功能:

     public StringBuffer append(String str):追加
     public StringBuffer insert(int offset,String str):指定位置插入字符串

删除功能:
      public StringBuffer deleteCharAt(int index):删除指定位置的字符,并返回本身
      public StringBuffer delete(int start,int end):删除从指定位置开始指定位置结束的内容,并返回本身
替换功能:
      public StringBuffer replace(int start,int end,String str):从start开始到end用str替换

反转功能:
      public StringBuffer reverse()

截取功能:

    注意返回值类型不再是StringBuffer本身了
      public String substring(int start)
      public String substring(int start,int end)

String -转化为-StringBuffer

      String s = "hello";
          // 注意:不能把字符串的值直接赋值给StringBuffer
          // StringBuffer sb = "hello";
          // StringBuffer sb = s;
          // 方式1:通过构造方法
          StringBuffer sb = new StringBuffer(s);
          // 方式2:通过append()方法
          StringBuffer sb2 = new StringBuffer();
          sb2.append(s);

StringBuffer -转化为- String
          StringBuffer buffer = new StringBuffer("java");
          // String(StringBuffer buffer)
          // 方式1:通过构造方法
    String str = new String(buffer);
          // 方式2:通过toString()方法
          String str2 = buffer.toString();

1:String,StringBuffer,StringBuilder的区别?
   A:String是内容不可变的,而StringBuffer,StringBuilder都是内容可变的。
   B:StringBuffer是同步的,数据安全,效率低;StringBuilder是不同步的,数据不安全,效率高
 
 2:StringBuffer和数组的区别?
   二者都可以看出是一个容器,装其他的数据。
   但是呢,StringBuffer的数据最终是一个字符串数据。
   而数组可以放置多种数据,但必须是同一种数据类型的。

3:形式参数:
        基本类型:形式参数的改变不影响实际参数
        引用类型:形式参数的改变直接影响实际参数
 *注意:
          String作为参数传递,效果和基本类型作为参数传递是一样的。
 

原文地址:https://www.cnblogs.com/lsymove/p/11241216.html