質問: 0) { system.out.print("o"); } else { system.out.print("b"); //only line changed } } system.out.println(""); } 劇的に異なる実行時間の背後にある理由は何ですか?コメントで示唆されているように、system.out.print("#");だけを出力すると7.8871秒かかるのに対して、system.out.print("b");はstill printing...を与える。それが彼らのために普通に動くと指摘した他の人として、私は ideone.com 例えば試してみました、そして両方のコードは同じ速度で実行されます。試験条件: このテストは netbeans 7.2 から実行し、その出力はコンソールに出力しました。 測定にsystem.nanotime()を使いました
回答: 純粋な憶測 は、文字の折り返しではなく wordの折り返し を試行し、bをwordの文字として、#をword以外の文字として扱うターミナルを使用しているということです。それで、それが行の終わりに達し、そしてその行を分割する場所を探すとき、それはほとんどすぐに#を見てそしてそこで幸せに分割します。一方、bでは、検索する時間が長くなり、折り返すテキストが多くなる可能性があります(一部の端末ではバックスペースの出力、次に折り返される文字の上書きのためのスペースの出力など)。しかし、それは純粋な憶測です。