読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

StringBuilder

Java

Java5で追加されたStringBuilderについて。名前は聞いたことあるけど使ったことはなかったりするので調べてみた。以下Javadocより。

  • 文字の可変シーケンスを表すクラス
  • StringBuffer とだいたい同じAPIを持つ
  • スレッドセーブではない。(StringBufferはスレッドセーフ)
    • なので、ほとんどの実装でStringBufferより高速。可能であればこちらを使うべき。

どれだけ速いのか?

単純に文字列を連結する操作でどれだけ差が出るか測ってみました。

  • buff.append("a")を50万回行った場合の所要時間を計測
  • 5回試行し、平均を取る。
  バッファサイズ指定なし バッファサイズ指定あり
StringBuilder 36msec 28sec
StringBuffer 43msec 37msec

やはり、StringBuilderの方が速いな。あと、バッファサイズはわかっているのであれば指定しましょう。