對java中的String採用+=連線字串需要注意的一個問題
對於java 中String的 += 操作,由於其潛在的會生成新的StringBuffer進行
連線操作(參考java tutorial),如果多次使用的話會嚴重影響效率。
比如:
檢查某個字串時, 如果採用下面方法並且字串很長的話,效率會非常低下:
String newString = "";
int length = inString.length();
for (int index = 0; index < length; ++index) {
char commonChar = comments.charAt(index);
if ((commonChar == '/'') || (commonChar == '//'))
newString += "//";
newString += commonChar;
}
此時應該使用StringBuffer:
StringBuffer newString = new StringBuffer();
newString.append("//");
newString.append(commonChar);
相關推薦
對java中的String採用+=連線字串需要注意的一個問題
對於java 中String的 += 操作,由於其潛在的會生成新的StringBuffer進行連線操作(參考java tutorial),如果多次使用的話會嚴重影響效率。 比如: 檢查某個字串時, 如果採用下面方法並且字串很長的話,效率會非常低下: String ne
對Java中String類的忽略大小寫比較器(CaseInsensitiveComparator)的compare方法的一點疑問
最近我在看jdk原始碼,無意中看到String類的忽略大小寫比較器的原始碼,其原始碼如下。 private static class CaseInsensitiveComparator implements Comparator<Str
Java中String轉Long方式及注意事項
字串轉Long: Long.ValueOf(String); 返回Long包裝類 Long.parseLong(String); 返回long基本資料型別 注意事項: 1.字串內不能包含除數字之外的字元 不然會報錯,java.lan
Java中使用同步關鍵字synchronized需要注意的問題
本文原地址:http://www.cnblogs.com/xiohao/p/4385582.html 在Java中,synchronized關鍵字是用來控制執行緒同步的,就是在多執行緒的環境下,控制synchronized程式碼段不被多個執行緒同時執行。sy
Java| Java中String對+的過載
使用場景一 在Java中是不支援過載運算子的,String的+是java中唯一的一個過載運算子,那麼java使如何實現這個加號的呢?我們先看一段程式碼: public static void main(String[] args) { String s1 = "yves"
java中String字串轉化成list<Integer>格式
最近開發中遇到問題,同事在傳給我ids時拼接為String字串格式,轉化成List,網上的轉化大致為: String[] strs = {"1","3","12","33"}; List<String> sList = Arrays.asList(strs); 而我要的是轉化後
java中String字串拼接“+”和StringBuffer的效率對比
1、前言 (1)最近在做資料傳輸時,由於接收的資料量較大,在字串拼接時使用了以前感覺方便的“+”進行字串拼接,最後拼接到最後時間越來越多,導致效率變慢。 2、String拼接 首先來看一下兩個String用“+”號拼接需要的時間 String aa="E0 00 00 00 00
論 java中String 和 new String還有物件中的String字串在記憶體中的儲存
一直以來,所有人都說,java中的String型別是不可變的,可是為什麼不可變確很少有人說的透徹,String和new String的區別,物件中的String和直接定義一個String是否有區別,一直都是一知半解。看了很多文件都是各種猜測,沒有具體程式碼來
java中String字串==的疑問?
java中String字串==的疑問?誰能幫忙解釋和理解一下!順便說一下底層的原理和執行規則? 直接po程式碼和截圖 public class TestString { /** * 測試String */ public static void main(String[] args
java中String字串的替換函式:replace與replaceAll的區別
1>replace的引數是char和CharSequence,既可以支援字元替換,也可以支援字串替換。 2>replaceall引數是regex, replacement,regex表示是正則表示式。 replace : String src = new Strin
java中String值為空字串與null的判斷方法
Java空字串與null的區別 1、型別 null表示的是一個物件的值,而不是一個字串。例如宣告一個物件的引用,String a=null。 “”表示的是一個空字串
Java中String字串轉整型或浮點型
學習筆記: 轉換為浮點型: 使用Double或者Float的parseDouble或者parseFloat方法進行轉換 String s = "123.456 "; //要確保字串為一個數值,否則會出異常 double d = D
java中String字串轉化成list格式
最近開發中遇到問題,同事在傳給我ids時拼接為String字串格式,轉化成List,網上的轉化大致為:String[] strs = {"1","3","12","33"}; List<String> sList = Arrays.asList(strs); 而
java中String類型轉換為yyyy-MM-dd的Date類型
col code edate birt mat led div get sys String birthday ="2017-02-22"; SimpleDateFormat sdf = new SimpleDateFormat(("yyyy-MM-dd")); jav
轉:Java中String與byte[]的轉換
輸出字符串 單個字符 linu 編輯 繁體 中國人 對象 本質 計算機基礎知識 String s = "fs123fdsa";//String變量 byte b[] = s.getBytes();//String轉換為byte[] String t = new Stri
java中string.trim()函數的作用
main ati cnblogs return style ret blog substr system trim /[tr?m] / 英文意思:整理,修理,修剪,整齊的 trim()的作用:去掉字符串首尾的空格。 public static void main(S
在java中String類為什麽要設計成final?
tro cli lai 這一 引用 沒有 num 重新 static 大神鏈接:在java中String類為什麽要設計成final? - 程序員 - 知乎 我進行了重新排版,並且更換了其中的一個例子,讓我們更好理解。 String很多實用的特性,比如說“不可變性”,是工
java中String的21種使用方法
i++ als cas tolower star out clas oid index (構造函數必須new出來) * public String (char[] vaue) 將一個字符數組變成字符串(構造函數) *
Java中String連接性能的分析
order 幫助 執行 .get leg body near 應該 con 總結:如果String的數量小於4(不含4),使用String.concat()來連接String,否則首先計算最終結果的長度,再用該長度來創建一個StringBuilder,最後使用這個Stri
Java中String的設計
字節對齊 執行 詳細 做了 永久 字符串變量 分析 擴展 mem String應用簡介 前言 String字符串在Java應用中使用非常頻繁,只有理解了它在虛擬機中的實現機制,才能寫出健壯的應用,本文使用的JDK版本為1.8.0_111。 常量池 Java代碼被