Java實(shí)現(xiàn)簡(jiǎn)單字符生成器代碼例子
創(chuàng)建成功的字符串對(duì)象,其長(zhǎng)度是固定的,內(nèi)容是不能被修改和編輯。雖然使用"+"可以達(dá)到增加新字符或字符串的目的,但"+"會(huì)產(chǎn)生一個(gè)新的String實(shí)例,會(huì)在內(nèi)存中創(chuàng)建新的字符串對(duì)象。如果重復(fù)地對(duì)字符串進(jìn)行修改,將極大地增加系統(tǒng)開(kāi)銷(xiāo)。J2SE自5.0增加了可變的字符序列String-Builder類(lèi),大大地提高了頻繁增加字符串的效率。下面看個(gè)簡(jiǎn)單的例子。
public class Jerque { /** * 比較一般情況下的字符串生成器,和String-Builder所耗的時(shí)間 */ public static void main(String[] args) { // TODO Auto-generated method stub String str = ""; long startTime1 = System.currentTimeMillis(); for (int i =0; i<10000; i++) { str = str +i; } long endTime1 = System.currentTimeMillis(); long time1 = endTime1 - startTime1; System.out.println("字符串1消耗時(shí)間:"+ time1); StringBuilder builder = new StringBuilder(""); long startTime2 = System.currentTimeMillis(); for (int i=0;i<10000;i++) { builder.append(i); } long endTime2 = System.currentTimeMillis(); long time2 = endTime2 - startTime2; System.out.println("字符串2消耗時(shí)間:" + time2); } }
字符串1消耗時(shí)間:1210
字符串2消耗時(shí)間:3
總結(jié):
1. 用JAVA自帶的字符序列String-Builder類(lèi),無(wú)疑大大提高了效率。
2. 此類(lèi)常用的方法如下:
a. append(content)方法
b. insert(int offset,arg)方法
StringBuilder b = new StringBuilder("Hello");
b.insert(5,"World!");
System.out.println(b.tostring());
c. delete(int start,int end)方法
StringBuilder d = new StringBuilder("StringBuilder");
d.delete(5,10);
System.out.println("d.toString()");
相關(guān)文章
Java的JDBC編程使用之連接Mysql數(shù)據(jù)庫(kù)
這篇文章主要給大家介紹了關(guān)于Java的JDBC編程使用之連接Mysql數(shù)據(jù)庫(kù)的相關(guān)資料,JDBC是一種用于執(zhí)行SQL語(yǔ)句的Java?API,可以為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一訪問(wèn),需要的朋友可以參考下2023-12-12SpringBoot yaml語(yǔ)法與數(shù)據(jù)讀取操作詳解
YAML 是 “YAML Ain’t Markup Language”(YAML 不是一種標(biāo)記語(yǔ)言)的遞歸縮寫(xiě)。在開(kāi)發(fā)的這種語(yǔ)言時(shí),YAML 的意思其實(shí)是:“Yet Another Markup Language”(仍是一種標(biāo)記語(yǔ)言),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07Java基于外觀模式實(shí)現(xiàn)美食天下食譜功能實(shí)例詳解
這篇文章主要介紹了Java基于外觀模式實(shí)現(xiàn)美食天下食譜功能,較為詳細(xì)的講述了外觀模式的概念、原理并結(jié)合實(shí)例形似詳細(xì)分析了Java基于外觀模式實(shí)現(xiàn)美食天下食譜功能的具體操作步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下2018-05-05Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:插入排序 Insertion Sort
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)及算法實(shí)例:插入排序 Insertion Sort,本文直接給出實(shí)例代碼,代碼中包含詳細(xì)注釋,需要的朋友可以參考下2015-06-06一個(gè)Java中BigDecimal的問(wèn)題記錄
這篇文章主要給大家介紹了關(guān)于Java中一個(gè)BigDecimal問(wèn)題的相關(guān)資料,通過(guò)文中介紹的方法可以很方便的解決BigDecimal進(jìn)行計(jì)算的時(shí)候不管怎么計(jì)算,最后得到的值都沒(méi)有變化的問(wèn)題,需要的朋友可以參考下2021-11-11詳解Elasticsearch如何實(shí)現(xiàn)簡(jiǎn)單的腳本排序
Elasticsearch?是位于?Elastic?Stack?核心的分布式搜索和分析引擎,可以為所有類(lèi)型的數(shù)據(jù)提供近乎實(shí)時(shí)的搜索和分析。本文主要介紹了Elasticsearch如何實(shí)現(xiàn)簡(jiǎn)單的腳本排序,感興趣的可以了解一下2023-01-01SpringBoot如何監(jiān)控Redis中某個(gè)Key的變化(自定義監(jiān)聽(tīng)器)
這篇文章主要介紹了SpringBoot如何監(jiān)控Redis中某個(gè)Key的變化(自定義監(jiān)聽(tīng)器),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09IDEA SpringBoot項(xiàng)目配置熱更新的步驟詳解(無(wú)需每次手動(dòng)重啟服務(wù)器)
這篇文章主要介紹了IDEA SpringBoot項(xiàng)目配置熱更新的步驟,無(wú)需每次手動(dòng)重啟服務(wù)器,本文通過(guò)圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04