1
給予代碼:Java:String.replace GC開銷太多了嗎?
long i=0;
while(i++<MILLIONS){
String justHex = UUID.randomUUID().toString().replaceAll("-","");
System.out.println(justHex);
}
這將產生大量的唯一的字符串,其中Gc將不得不最終清洗的。並且,enter code here
在每個字符串上執行replaceAll會創建更多的唯一字符串(兩次?)。
這是否(replaceAll)對於小型應用程序來說是GC的一項重要開銷?
程序員應該擔心這樣的事情嗎?
實際上,替換也會進行正則表達式替換(replace invokes replaceAll),但首先會轉義字符串中的所有特殊字符。如果你想獲得最好的性能,你應該看看Apache或谷歌的第三方庫(替代品來源:'返回Pattern.compile(target.toString(),Pattern.LITERAL).matcher(this).replaceAll Matcher.quoteReplacement(replacement.toString()));' –