なぜIntelliJのは、私がこれを変更したいのですか?

スライス:

コードの単純な行:

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)複雑さを。ご確認くださいこの答えを説明した例と。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=23354&siteId=1