本篇文章給大家分享的是有關(guān)Java中StringBuilder類的原理是什么,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
目前創(chuàng)新互聯(lián)建站已為上千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站運營、企業(yè)網(wǎng)站設(shè)計、開陽網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
StringBuilder類的由來
由于String類的對象內(nèi)容不可改變(底層是一個被final修飾的數(shù)組),所以每當(dāng)我們進行字符串拼接時,總是會在內(nèi)存中創(chuàng)建一個新的對象。如果對字符串進行拼接操作,每次拼接,都會構(gòu)建一個新的String對象,既耗時,又浪費空間。為了解決這一問題,我們可以使用java.lang.StringBuilder類。
StringBuilder的簡介
查閱 java.lang.StringBuilder 的API,StringBuilder又稱為可變字符序列,它是一個類似于 String 的字符串緩沖區(qū),通過某些方法調(diào)用可以改變該序列的長度和內(nèi)容。原來StringBuilder是個字符串的緩沖區(qū),即它是一個容器,容器中可以裝很多字符串。并且能夠?qū)ζ渲械淖址M行各種操作。它的內(nèi)部擁有一個數(shù)組用來存放字符串內(nèi)容,進行字符串拼接時,直接在數(shù)組中加入新內(nèi)容。StringBuilder會自動維護數(shù)組的擴容(默認16字符空間,超過自動擴充)。
常用構(gòu)造方法有2個:
public StringBuilder():構(gòu)造一個空的StringBuilder容器。
public StringBuilder(String str):構(gòu)造一個StringBuilder容器,并將字符串添加進去。
StringBuilder常用的方法有2個:
public StringBuilder append(...):添加任意類型數(shù)據(jù)的字符串形式,并返回當(dāng)前對象自身。任何數(shù)據(jù)作為參數(shù)都會將對應(yīng)的字符串內(nèi)容添加到StringBuilder中。
package demo06; public class Demo01StringBuilder { public static void main(String[] args) { //創(chuàng)建StringBuilder對象 StringBuilder bu = new StringBuilder(); //使用append方法往StringBuilder中添加數(shù)據(jù),可以添加任意類型的數(shù)據(jù) /* 鏈式編程:方法返回值是一個對象,可以繼續(xù)調(diào)用方法 */ bu.append("abc").append(1).append(true).append(8.8).append('中'); System.out.println(bu);//abc1true8.8中 } }
public String toString()`:將當(dāng)前StringBuilder對象轉(zhuǎn)換為String對象。
package demo06; public class Demo02StringBuilder { /* StringBuilder和String可以相互轉(zhuǎn)換: String->StringBuilder:可以使用StringBuilder的構(gòu)造方法 StringBuilder(String str) 構(gòu)造一個字符串生成器,并初始化為指定的字符串內(nèi)容。 StringBuilder->String:可以使用StringBuilder中的toString方法 public String toString():將當(dāng)前StringBuilder對象轉(zhuǎn)換為String對象。 */ public static void main(String[] args) { //String->StringBuilder String str = "hello"; StringBuilder bu = new StringBuilder(str); //往StringBuilder中添加數(shù)據(jù) bu.append("world"); System.out.println("StringBuilder:" + bu); //StringBuilder->String String s = bu.toString(); System.out.println("字符串:" + s); } }
代碼執(zhí)行后的結(jié)果
1. 簡單,只需理解基本的概念,就可以編寫適合于各種情況的應(yīng)用程序;2. 面向?qū)ο螅?. 分布性,Java是面向網(wǎng)絡(luò)的語言;4. 魯棒性,java提供自動垃圾收集來進行內(nèi)存管理,防止程序員在管理內(nèi)存時容易產(chǎn)生的錯誤。;5. 安全性,用于網(wǎng)絡(luò)、分布環(huán)境下的Java必須防止病毒的入侵。6. 體系結(jié)構(gòu)中立,只要安裝了Java運行時系統(tǒng),就可在任意處理器上運行。7. 可移植性,Java可以方便地移植到網(wǎng)絡(luò)上的不同機器。8.解釋執(zhí)行,Java解釋器直接對Java字節(jié)碼進行解釋執(zhí)行。
以上就是Java中StringBuilder類的原理是什么,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。