1. 程式人生 > >靜態字串的連線操作

靜態字串的連線操作

先看一段程式碼
String r1 = "String" + "String" + "aaa";
StringBuilder sb = new StringBuilder();
sb.append("String");
sb.append("String");
sb.append("aaa");

從理論上講,r1字串的程式碼效率並不高,因為產生了新的物件“StringString”,"StringStringaaa"。

但通過對編譯後的class檔案反編譯發現,反編譯的結果是

String r1 = "StringStringaaa";
StringBuilder sb = new StringBuilder();
sb.append("String");
sb.append("String");
sb.append("aaa");

說明對於靜態字串的連線操作,java在編譯的時候進行了優化,將這些連線操作直接合併成一個字串