スライス:
コードの単純な行:
String thing = "Something";
thing += " something else" + " and more.";
同じ結果を達成するために4つの他の方法には、この行を変更するのIntelliJ IDEAの提供:
String.format()
StringBuilder.append()
java.text.MessageFormat.format()
Replace += with =
どうして?何が+ =とそれほど間違っていますか?誰もがこれをしてください説明できますか?ありがとうございました。
Manushinイゴール:
一般的なケースでは、結果は同じではありません。+
オペレータは、追加のメモリを必要とする中間文字列を、割り当てます。
String thing = "Something";
thing += " something else" + " and more."; // two allocations: to compute string inside expression ```" something else" + " and more."```` and to execute ```+=```
使用するとStringBuilder
、あなたが中間結果を割り当てていない、例えば以下のメモリが必要とされています。
短い線であなたの場合やループせずに実際のパフォーマンスの向上が期待されていません。ただし、ループとあなたは受けるのO(N^2)
複雑さを。ご確認くださいこの答えを説明した例と。