2

Java コードでは、次のように考えています。

for (int i = 0; i < s.length(); i++) {
    // do a lot of something
}

これより遅い:

int length = s.length();
for (int i = 0; i < length; i++) {
    // do a lot of something
}

私が正しいかどうか教えてください。

4

1 に答える 1

7

s.length()理論的には、反復ごとに 1 回呼び出すため、最初のコード サンプルは遅くなる可能性があります。しかし、JVM がコードの最初の部分を最適化する可能性があります。ベンチマークで次のことが示されない限り、より単純なアプローチを使用します。

  1. パフォーマンスが重要なコードを使用しています。
  2. 長さをローカル変数に格納すると、実際には速度が向上します。
于 2012-07-14T22:21:50.867 に答える