StringBuilder的初始化容量以及初始化帶參數類型的問題


問題:

StringBuilder帶參數初始化時,String和int類型結果不一致。

	String string1 =new StringBuilder("test").toString();//"test"
	String string2 =new StringBuilder(4).toString();//""

源碼:

    public StringBuilder() {
        super(16);
    }
    public StringBuilder(int capacity) {
        super(capacity);
    }
    public StringBuilder(String str) {
        super(str.length() + 16);
        append(str);
    }

總結:

1、調用無參構造StringBuilder()會初始化默認容量為16。
2、調用有參構造,傳入字符串str,StringBuilder(String str)會初始化容量為:16+str.length(),但是此處會判斷value數組容量是否充足,如果容量不夠就需要進行擴容。並且會拼接字符串str,此時value數組中元素個數為str.length()。
3、調用有參構造,傳入int類型字面值capacity,StringBuilder(int capacity)會初始化容量為capacity。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM