2016-06-14 3 views
2

Java 8では、いくつかのサンプルコードを書きました。 concatinatingのためのJava 8 '+'演算子がnew StringBuilder()に置き換えられました

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

は逆コンパイルの.classファイルの後、私は第三の文

String s3 = s1 + s2; 

が、それはもはや最適化のための明示的なのStringBuilderを使用する必要があるとだけが存在することを意味しないん

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

で置き換えることがわかりました代わりに '+'演算子を使用しますか?

+0

「*明示的なStringBuilder *を使用する必要はありません。 javacはそのような単純なケースでのみjavacを使用します。ループでは、あなた自身も 'StringBuilder'を使用する必要があります。 – maaartinus

+0

はいいいです、私はいくつかのサンプルプログラムを書いてデコンパイルし、ループではStringBuilderが必要であることを知りました。 – shubham12511

答えて

2

はい。実際には、この最適化はJava 6で行われていました。詳細については、Bruce Eckelの「Thinking in Java」第4版pp.356-359を参照してください。

関連する問題