Java連載75-StringBuffer和StringBuilder

1、StringBuffer和StringBuilderjava

1.StringBuffer是什麼?node

答:是一個字符串緩衝區,工做原理:預先在內存中申請一塊空間以容納字符序列,若是預留的空間,則進行自動擴容,以容納更多的字符序列。git

2.StringBuffer\StringBuilder和String最大的區別github

String是不能夠變的字符序列,存儲字符串常量池中數組

StringBuffer底層是一個char數組,可是該char數組是能夠變的,而且能夠自動擴容安全

3.StringBuffer和StringBuilder的默認初始化容量是16微信

4.如何優化StringBuffer和StringBuilder多線程

最好在建立StringBuffer以前,預測StringBuffer的存儲字符數量,而後再建立StringBuffer的時候採用指定初始化容量的方式建立StringBuffer,爲了減小底層數組的拷貝,提升效率。app

5.StringBuffer和StringBuilder的區別?學習

StringBuffer是線程安全的,便可以在多線程的環境中使用,是安全的。

StringBuilder是非線程安全的,即在多線程的環境中使用這個類能夠會出現問題。

 

package com.bjpowernode.java_learning;

​

public class D75_1_StringBufferAnalysis {

  public static void main(String [] args) {

    //建立字符串緩衝區對象

    StringBuffer s1 = new StringBuffer();//16//這個類的參數裏面能夠傳入整數,表明初始化多大的空間,若是不寫,默認就是16

    //能夠向StringBuffer中追加字符串

    String[] ins = {"Physical","music","sleep","gourmet"};

    //推薦字符串頻繁拼接使用StringBuffer和StringBuilder,不要使用String

    for(int i =0;i<ins.length;i++) {

      if(i==ins.length-1) {

        s1.append(ins[i]);

      }else {

        s1.append(ins[i]);

        s1.append(",");

      }

    }

    System.out.println(s1);

  }

}

 

 

2、源碼:                                        

D75_1_StringBufferAnalysis.java

https://github.com/ruigege66/Java/blob/master/D75_1_StringBufferAnalysis.java

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客園:https://www.cnblogs.com/ruigege0000/

4.歡迎關注微信公衆號:傅里葉變換,我的公衆號,僅用於學習交流,後臺回覆」禮包「,獲取大數據學習資料

相關文章
相關標籤/搜索