在for迴圈中,比較常用的字串拼接方式包括以下五種方式:
string,+
string.concat
apache.commons.lang3.stringutils.join
stringbuffer
stringbuilder
接下來,依次分析上述五種方式
string,+
public final static
void
stringstr()
long time1 = system.
currenttimemillis()
; system.out.
println
("-----使用string+:"
+(time1 - time));
}
輸出:-----使用string+:4680
string.concat
public final static
void
stringconcat()
long time1 = system.
currenttimemillis()
; system.out.
println
("-----使用string.concat:"
+(time1 - time));
}
輸入:-----使用string.concat:3373
apache.commons.lang3.stringutils.join
public final static
void
stringutilsjoin()
; long time = system.
currenttimemillis()
;for
(int i=
0;i<
20000
;i++
) long time1 = system.
currenttimemillis()
; system.out.
println
("-----使用stringutils.join:"
+(time1-time));
}
輸入:-----使用stringutils.join:40
public final static
void
stringbuffer()
long time3 = system.
currenttimemillis()
; system.out.
println
("-----使用stringbuffer:"
+(time3-time));
}
輸出:-----使用stringbuffer:10
public final static
void
stringbuilder()
long time1 = system.
currenttimemillis()
; system.out.
println
("-----使用stringbuilder:"
+(time1-time));
}
輸出:-----使用stringbuilder:4
從上述執行結果來說,在for迴圈中使用字串拼接的速度:
stringbuilder>stringbuffer>stringutils.join>string.concat>string+
String字串拼接陷阱
先看如下程式 對於一般類物件 public class a public class test public static void main string args 再看如下程式 public class test public static void main string args 輸出的結果...
String 型別字串儲存和拼接
string str1 hello string str2 he llo string str3 he new string llo str1 str2 true str1 str3 false 這個問題我試著回答一下,同時也是相互學習。string str1 hello stringstr2 he...
精 (String)字串拼接記憶體解析
string str1 hello 字串常量池中沒有 hello 則建立乙個字串並把位址值返回給str1 string str2 hello 字串常量池中存在 hello 則創將該字串的位址值返回給str2 string str3 new string hello str3指向物件的位址,物件中的值...