本篇文章給大家分享的是有關Java中StringBuilder類的原理是什么,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
StringBuilder類的由來
由于String類的對象內容不可改變(底層是一個被final修飾的數組),所以每當我們進行字符串拼接時,總是會在內存中創建一個新的對象。如果對字符串進行拼接操作,每次拼接,都會構建一個新的String對象,既耗時,又浪費空間。為了解決這一問題,我們可以使用java.lang.StringBuilder類。
StringBuilder的簡介
查閱 java.lang.StringBuilder 的API,StringBuilder又稱為可變字符序列,它是一個類似于 String 的字符串緩沖區,通過某些方法調用可以改變該序列的長度和內容。原來StringBuilder是個字符串的緩沖區,即它是一個容器,容器中可以裝很多字符串。并且能夠對其中的字符串進行各種操作。它的內部擁有一個數組用來存放字符串內容,進行字符串拼接時,直接在數組中加入新內容。StringBuilder會自動維護數組的擴容(默認16字符空間,超過自動擴充)。
常用構造方法有2個:
public StringBuilder():構造一個空的StringBuilder容器。
public StringBuilder(String str):構造一個StringBuilder容器,并將字符串添加進去。
StringBuilder常用的方法有2個:
public StringBuilder append(...):添加任意類型數據的字符串形式,并返回當前對象自身。任何數據作為參數都會將對應的字符串內容添加到StringBuilder中。
package demo06;
public class Demo01StringBuilder {
public static void main(String[] args) {
//創建StringBuilder對象
StringBuilder bu = new StringBuilder();
//使用append方法往StringBuilder中添加數據,可以添加任意類型的數據
/*
鏈式編程:方法返回值是一個對象,可以繼續調用方法
*/
bu.append("abc").append(1).append(true).append(8.8).append('中');
System.out.println(bu);//abc1true8.8中
}
}public String toString()`:將當前StringBuilder對象轉換為String對象。
package demo06;
public class Demo02StringBuilder {
/*
StringBuilder和String可以相互轉換:
String->StringBuilder:可以使用StringBuilder的構造方法
StringBuilder(String str) 構造一個字符串生成器,并初始化為指定的字符串內容。
StringBuilder->String:可以使用StringBuilder中的toString方法
public String toString():將當前StringBuilder對象轉換為String對象。
*/
public static void main(String[] args) {
//String->StringBuilder
String str = "hello";
StringBuilder bu = new StringBuilder(str);
//往StringBuilder中添加數據
bu.append("world");
System.out.println("StringBuilder:" + bu);
//StringBuilder->String
String s = bu.toString();
System.out.println("字符串:" + s);
}
}代碼執行后的結果

1. 簡單,只需理解基本的概念,就可以編寫適合于各種情況的應用程序;2. 面向對象;3. 分布性,Java是面向網絡的語言;4. 魯棒性,java提供自動垃圾收集來進行內存管理,防止程序員在管理內存時容易產生的錯誤。;5. 安全性,用于網絡、分布環境下的Java必須防止病毒的入侵。6. 體系結構中立,只要安裝了Java運行時系統,就可在任意處理器上運行。7. 可移植性,Java可以方便地移植到網絡上的不同機器。8.解釋執行,Java解釋器直接對Java字節碼進行解釋執行。
以上就是Java中StringBuilder類的原理是什么,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。