1. 程式人生 > >幾種拼接字串的效率問題

幾種拼接字串的效率問題

 拼接字串,大致有3個class可以用,他們是String, StringBuffer,StringBuilder, StringBuilder是1.5中來代替StringBuffer的。檢驗方法如下:

 

貼出一組檢測資料如下:

 

1、String類本身是final型別,字串拼接時,會使用StringBuffer,並呼叫append,之後再呼叫toString方法。而StringBuffer轉換成String時,開銷相當大。中間不僅創立了臨時物件StringBuffer,還每次完後再要轉成String。

2、在做字串連線時,String類的concat方法優於+號。 ( String += ) 與 ( String = String + ) 相率相當。


3、而 StringBuilder的出現就是用來替換StringBuffer的,但不適宜於多執行緒程式設計。從這點兒上來說,StringBuilder 在單執行緒程式設計情況下應優先於StringBuffer使用,而在多執行緒程式設計時則應使用StringBuffer,不宜使用StringBuilder 。

4、單執行緒情況下做字串連線,StringBuilder.append 與 StringBuffer.append 效率相當。

相關推薦

拼接字串效率與區別

程式中拼接字串是非常常見的操作,一般有直接通過+號拼接,或者使用concat()方法拼接、String.join()、StringUtils.join()、StringBuffer、StringBuilder的append()方法,後兩種之前討論過,不做過多贅述。 +拼接 直接使

拼接字串效率問題

 拼接字串,大致有3個class可以用,他們是String, StringBuffer,StringBuilder, StringBuilder是1.5中來代替StringBuffer的。檢驗方法如下:   public class test { /** * @par

java 拼接字串效率

拼接字串,大致有3個class可以用,他們是String, StringBuffer,StringBuilder, StringBuilder是1.5中來代替StringBuffer的。檢驗方法如下:public class test { /** * @para

字串中判斷存在的模式和效率(string.contains、string.IndexOf、Regex.Match)

 通常情況下,我們判斷一個字串中是否存在某值常常會用string.contains,其實判斷一個字串中存在某值的方法有很多種,最常用的就是前述所說的string.contains,相對來說比較常用的還有string.IndexOf和Regex.Match。直接上程式碼,後面在說些什麼吧,通常情況下功能的實現最

java向txt中寫入字串方式以及效率

1.PrintWriter try { PrintWriter pw=new PrintWriter("D://1.txt"); for(int i=0;i<500000;i++){ pw.write("我是一顆自由小星

java建立字串的方法

JAVA有幾種建立字串的方法1)通過引用字元陣列來建立字串 char a[]={'A','b','c','E'}; String str1=new String(a); System.out.println(str1); 2)先定義後賦值 String str2; str2="this is a b

map遍歷的方式和效率問題

一、map遍歷的效率 先建立一個map,新增好資料: Map<String, String> map = new HashMap<>(); for (int i = 0; i < 1000000; i++) { map.put(i +

web前端js基礎之js的“擷取字串”方法

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js的幾種擷取字串方法</title> <

C 擷取字串的方法 split Substring Replace remove

    Split 方法忽略 separator 的任何值為 Nothing 或空字串 ("") 的元素。 為了在 separator 中的字串具有公共字元的情況下避免出現不明確的結果, Split 操作從例項值的開始進行到結尾,並匹配 separator 中與例項中的分隔符相等的第一個元素。 例項中子字串的

字串頭尾翻轉的方法

方法一: public static String reverse1(String s) { int length = s.length(); if (length <= 1) return s; String left = s.substring

map遍歷的方式及效率

1)map的key採用簡單形式和複雜形式時,查詢的效率是不同的,簡單的key值效率更高       2)當資料量大的時候,採用entrySet遍歷key+value的效率要高於keySet       3)當我們只需要取得val

JAVA for迴圈的寫法和效率

String[] stringS = {"A","B","C","D"}; Collection stringlists = java.util.Arrays.asList(stringS); for(int i = 0;i < stringS.length;i ++){

C#擷取字串的方法(split 、Substring、Replace、remove)

C#截圖字串常用的方法有 split 、Substring、Replace、remove等。 split的使用:  1. Split( Char ())      返回的字串陣列包含此例項中的子字串(

Java中對於+和append拼接字串效率的誤解

引言     對於初學Java的人來說,在學習String的時候,肯定有無數個人和我們講過,”儘量不要使用+拼接字串,效率不好,應該使用append,你自己迴圈拼接個十萬次自己瞧瞧就知道了“,然後像下面那樣給我們演示了一下,用+和用StringBuilder的

JavaScript中for迴圈的寫法與效率總結

前言 對於for迴圈,相信大家再常用不過了。但是這回說下for迴圈是因為看程式碼時我居然沒有看明白一個for迴圈的意思,真是不應該啊。 這個for迴圈是這麼寫的: ? 1 2 3 for (var i = 0, rule;

c++拼接字串效率比較(+=、append、stringstream、sprintf)

最近寫的程式用到大量拼接字串,為了提高拼接效率,比較了一下+=、append、stringstream、sprintf四種拼接字串的方法。 測試方法 比較方法是寫了4個函式,分別用+=、append、stringstream、sprintf的方式來拼接字串

java字串拼接方式

1. plus方式 當左右兩個量其中有一個為String型別時,用plus方式可將兩個量轉成字串並拼接。 String a="";int b=0xb;String c=a+b;2. concat方式 當兩個量都為String型別且值不為null時,可以用concat方式。 String a="a";S

java程式碼拼接字串方式:

package com.haier.openplatform.fxst.util;import java.util.Date;public class test2 {/** * 測試   == 拼接字串的幾種方法的效率 * @time:2018年6月13日 * @TODO *

常見SQL分頁方式效率比較

har n) over mage 適用於 not blog toolbar 大數 1.創建測試環境,(插入100萬條數據大概耗時5分鐘)。 create database DBTestuse DBTest--創建測試表create table pagetest(id

關於python字符串拼接方法

定義 input 表數 根據 技術 image 友情 不能 mat 當時看完python的基本語法後 給朋友寫了個美元概率換算 寫完後拼接結果時候 發現壓根不知道python怎麽拼接字符串 看了些資料自己做了個總結 首先就是和JavaScript一樣的拼接方式 name