Java中StringBuilder的清空方法比較

StringBuilder 沒有提供clear或empty方法。
清空有3種方法:
1)新生成一個,舊的由系統自己主動回收
2)使用delete
3)使用setLength

將三種方法循環1000萬次,代碼:


1.public class sbbm {

2.

3.??? static String a;

4.??? static long time ;

5.??? public static void main( String[] args ) throws Exception {

6.???????

7.???????? StringBuilder sb = new StringBuilder();

8.???????? StringBuilder sb3 = new StringBuilder();

9.????????

10.???????? time = System.currentTimeMillis();

11.????????? for( int i = 0; i < 10000000; i++ ) {

12.????????????? StringBuilder sb2 = new StringBuilder();

13.????????????? sb2.append( "someStr6ing" );

14.????????????? sb2.append( "someS5tring2" );

15.????????????? sb2.append( "some3Strin4g" );

16.????????????? sb2.append( "so3meStr5ing" );

17.????????????? sb2.append( "so2meSt7ring" );

18.????????????? a = sb2.toString();

19.????????? }

20.????????? System.out.println( "Way2="+(System.currentTimeMillis()-time) );

21.??????????

22.

23.??????? time = System.currentTimeMillis();

24.??????? for( int i = 0; i < 10000000; i++ ) {

25.??????????? sb.delete( 0, sb.length() );

26.??????????? sb.append( "someString" );

27.??????????? sb.append( "someString2" );

28.??????????? sb.append( "someStrin4g" );

29.??????????? sb.append( "someStr5ing" );

30.??????????? sb.append( "someSt7ring" );

31.??????????? a = sb.toString();

32.??????? }

33.??????? System.out.println( "Way1="+(System.currentTimeMillis()-time) );

34.

35.??????? time = System.currentTimeMillis();

36.??????? for( int i = 0; i < 10000000; i++ ) {

37.

38.??????????? sb3.setLength( 0 );

39.??????????? sb3.append( "someStr55ing" );

40.??????????? sb3.append( "some44String2" );

41.??????????? sb3.append( "som55eStrin4g" );

42.??????????? sb3.append( "some66Str5ing" );

43.??????????? sb3.append( "so33meSt7ring" );

44.??????????? a= sb3.toString() ;

45.??????? }

46.??????? System.out.println( "Way3="+(System.currentTimeMillis()-time) );

47.?

48.?????

49.??? }

50.}


注意append的字符串要都不同樣,否則會由于java 的String? pool對結果造成影響(即3好于2)

結果:


1.Way2=9438

2.Way1=6281

3.Way3=6469

能夠將各方法多反復幾次,點到順序,等
整體來看:方法2好于方法3好于方法1

轉載于:https://www.cnblogs.com/bhlsheji/p/4290917.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/273390.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/273390.shtml
英文地址,請注明出處:http://en.pswp.cn/news/273390.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LinkCutTree 總結

最近學習了LinkCutTree&#xff0c;總結一下。 LinkCutTree是一種數據結構&#xff08;是Tree Decomposition中的一種&#xff09;&#xff0c;她維護的一般是無向圖&#xff08;一個森林&#xff09;&#xff0c;支持連邊、刪邊、鏈修改、鏈查詢&#xff08;點屬于特殊的鏈&am…

linux 數據轉換

使用bc 可以進行不同進制之間的轉換 digit100; printf "the number is : %d\n" $digit;binary$( echo "obase2;$digit" | bc );printf "result is : %s\n" $binary;digit1$( echo "obase10;ibase2;$binary" | bc );printf "bina…

PHP常用的正則表達式(有些需要調整)

平時做網站經常要用正則表達式&#xff0c;下面是一些講解和例子&#xff0c;僅供大家參考和修改使用&#xff1a; "^\d$"  //非負整數&#xff08;正整數 0&#xff09; 順平注: 驗證輸入id數值&#xff0c;不能為0 $reg1/^[1-9]\d*$/; "^[0-9]*[1-9][0-9]…

浮點數據的運算

使用bc設置scale可以進行相應的浮點運算#!/bin/bash# FileName TestBc.shdigit100;sqrt$(echo "scale3;sqrt($digit) " | bc);echo $sqrt;var$(echo "scale3;10/3" | bc);echo $var;var1$( echo "scale2;0.5*3" | bc);echo $var1;

IE(IE6/IE7/IE8)支持HTML5標簽--20150216

讓IE&#xff08;ie6/ie7/ie8&#xff09;支持HTML5元素&#xff0c;我們需要在HTML頭部添加以下JavaScript&#xff0c;這是一個簡單的document.createElement聲明&#xff0c;利用條件注釋針對IE來調用這個js文件。Opera&#xff0c;FireFox等其他非IE瀏覽器就會忽視這段代碼…

linux shell 求絕對值

abs-1;printf "the number is : %d\n" $abs;printf "abs is : %d\n" $abs;if [ $abs -lt 0 ]; thenlet abs0-$abs;fiprintf "abs is : %d\n" $abs;

PyQt中從RAM新建QIcon對象 / Create a QIcon from binary data

一般&#xff0c;QIcon是通過png或ico等圖標文件來初始化的&#xff0c;但是如果圖標資源已經在內存里了&#xff0c;或者一個zip壓縮文件內&#xff0c;可以通過QPixmap作為橋梁&#xff0c;轉換為圖標。 zf zipfile.ZipFile("library.zip") # 準備zip文件 pm …

Java中的代碼塊標記

taga: {for (int k 0; k < 5; k) {System.out.println("kkkkkk: " k);if (k > 3) {break taga;}tagb: for (int i 0; i < 10; i) {System.out.println("i: " i);if (i 2) {break tagb;}}}}

windows中安裝zookeeper

Zookeeper 分布式服務框架是 Apache Hadoop 的一個子項目&#xff0c;它主要是用來解決分布式應用中經常遇到的一些數據管理問題&#xff0c;如&#xff1a;統一命名服務、狀態同步服務、集群管理、分布式應用配置項的管理等。本文將從使用者角度詳細介紹 Zookeeper 的安裝和配…

MySQL Event

一、前言自MySQL5.1.6起&#xff0c;增加了一個非常有特色的功能–事件調度器(Event Scheduler)&#xff0c;可以用做定時執行某些特定任務&#xff08;例如&#xff1a;刪除記錄、對數據進行匯總等等&#xff09;&#xff0c;來取代原先只能由操作系統的計劃任務來執行的工作。…

Java中實現統計一個字符串在另一個字符串中出現的次數統計

public int getSubNum(String a,String b){int num0;String stra;int indexa.indexOf(b);while(index!-1){num;strstr.substring(indexb.length()-1);indexstr.indexOf(b);}return num;}

【編程練習】正整數分解為幾個連續自然數之和

題目&#xff1a;輸入一個正整數&#xff0c;若該數能用幾個連續正整數之和表示&#xff0c;則輸出所有可能的正整數序列。 一個正整數有可能可以被表示為n(n>2)個連續正整數之和&#xff0c;如&#xff1a; 1512345 15456 1578 有些數可以寫成連續N&#xff08;>1&am…

IOS-C語言第12天,(函數指針)Point and macro(宏)

轉載于:https://www.cnblogs.com/xiangrongsu/p/4309366.html

c# 兩個數的加減乘除

Console.Title "加減乘除"; double x, y,z0; string m; int n0; Console.WriteLine("第一個數&#xff1a;"); x Convert.ToDouble(Console.ReadLine()); Console.WriteLine("運算符(默認為加)&#xff1a;"); m Console.ReadLine(); m (m &…

mysql建表語句

在sql語句中注意“約束的概念": 1.實體完整性約束(主鍵--唯一且非空) primary key()違約處理:No action(拒絕執行)2.參照完整性約束(外鍵約束)foregin key() references tableName(filedName) [on delete|update casecade | no action]違約處理:級聯更新或拒絕執行3.用戶自…

HTTP協議(1)—HTTP的連接

一、TCP連接過程:a.瀏覽器解析出主機名b.瀏覽器查詢出這個主機名的IP地址c.瀏覽器獲得端口號d.瀏覽器發起到ip:port的連接(TCP連接)e.瀏覽器向服務器發送一條HTTP報文f.瀏覽器從服務器讀取HTTP響應報文g.瀏覽器關閉連接1.TCP的可靠數據管道從TCP連接一端填入的字節會從另一端以…

Apache POI使用詳解

1.POI結構與常用類(1)POI介紹Apache POI是Apache軟件基金會的開源項目&#xff0c;POI提供API給Java程序對Microsoft Office格式檔案讀和寫的功能。 .NET的開發人員則可以利用NPOI (POI for .NET) 來存取 Microsoft Office文檔的功能。(2)POI結構說明包名稱 說明HSSF 提供讀寫M…

Http協議(3)—HTTP實體和編碼

HTTP實體實現目標.可以被正確識別(通過Content-Type和Content-Launage).可以被正確解包(通過Content-Lenght首部和Content-Encoding首部).是最新的(通過實體驗證碼和緩存過期控制).符合用戶需要(基于Accept系列的內容協商首部).在網絡上可以快速有效的傳輸(通過范圍請求、差異編…

架構之美—軟件架構6大步驟(開篇)

1> 需求分析2> 領域建模3> 確定關鍵需求4> 概念架構設計5> 細化架構設計6 架構驗證 轉載于:https://www.cnblogs.com/kool/p/6695766.html

Http協議(2)—客戶端的識別與cookie機制

一、Http用戶識別的機制1.承載用戶身份的http首部2.客戶端IP地址跟蹤,根據客戶端IP地址進行識別3.用戶登錄,用認證方式識別用戶4.胖URL&#xff0c;一種在URL中嵌入識別信息的技術5.cookie,一種持久身份識別技術二、HTTP首部1.From包含用戶的Email地址2.User_Agent將用戶所用瀏…