Java StringBuilder類原理及常用方法
這篇文章主要介紹了Java StringBuilder類原理及常用方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
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ù) /* 鏈?zhǔn)骄幊?方法返回值是一個對象,可以繼續(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é)果
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot使用@ControllerAdvice全局異常處理
這篇文章主要介紹了SpringBoot使用@ControllerAdvice全局異常處理,異常處理是非常重要的一部分,它可以幫助我們捕獲并處理應(yīng)用程序中出現(xiàn)的異常情況,提高應(yīng)用程序的健壯性和可靠性,需要的朋友可以參考下2023-07-07Springboot內(nèi)嵌tomcat應(yīng)用原理深入分析
懂得SpringBoot的童鞋應(yīng)該很清楚,不管應(yīng)用程序是屬于何種類型,都是一個Main方法走遍天下,對于web應(yīng)用,只需要引入spring-boot-starter-web中這個依賴,應(yīng)用程序就好像直接給我們來了個tomcat一樣,對于嵌入式Tomcat,其實也非常簡單,就是調(diào)用Tomcat提供的外部類2022-09-09SpringBoot 整合 RabbitMQ 的使用方式(代碼示例)
本文詳細介紹了使用RabbitTemplate進行消息傳遞的幾種模式,包括點對點通信、發(fā)布/訂閱模式、工作隊列模式、路由模式和主題模式,每種模式都通過代碼示例展示了生產(chǎn)者和消費者的實現(xiàn),幫助開發(fā)者理解和運用RabbitMQ進行高效的消息處理2024-10-10Spring Boot 部署過程解析(jar or war)
這篇文章主要介紹了Spring Boot 部署過程解析(jar or war),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09詳解OpenFeign服務(wù)調(diào)用(微服務(wù))
OpenFeign是Spring Cloud在Feign的基礎(chǔ)上支持了SpringMVC的注解,如@RequesMapping等等,這篇文章主要介紹了OpenFeign服務(wù)調(diào)用的相關(guān)知識,需要的朋友可以參考下2022-07-07SpringBoot整合Druid數(shù)據(jù)源過程詳解
這篇文章主要介紹了SpringBoot整合Druid數(shù)據(jù)源過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12