2016-06-14 60 views
2

在Java 8中,我編寫了一些示例代碼。在用於concatinating的Java 8'+'操作符由新的StringBuilder替換()

String s1 = "Hello"; 
String s2 = "world"; 
String s3 = s1 + s2; 

反編譯的.class文件後,我發現,第3聲明

String s3 = s1 + s2; 

通過

String s3 = new StringBuilder(s1).append(s2).toString(); 

更換這是否意味着不再有需要使用StringBuilder的明確的優化和公正使用'+'運算符而不是?

+0

「*是否意味着不再需要使用顯式StringBuilder *」 - 否,javac僅在這種微不足道的情況下使用它。在循環中,你仍然需要使用'StringBuilder'。 – maaartinus

+0

是的這是正確的,我寫了一些示例程序並反編譯它,並得知在循環中我們需要StringBuilder。 – shubham12511

回答

2

是的。實際上,這個優化已經在Java 6中完成了。請參閱Bruce Eckel的「Thinking in Java」第4版pp.356-359瞭解詳細信息