Stringの連結を効率よく行うメモ。

Stringクラスを使う場合
String str = "abc" + "def" + "ghi";

上記の場合、Stringクラスは固定長であるため、
abcというオブジェクト、defというオブジェクト、ghiというオブジェクト、
それらを足し合わせたabcdefghiというオブジェクトの4つのStringオブジェクトが生成される。

StringBuilderクラスを使う場合
以下のように連結を行うと、最後に1つだけStringオブジェクトが生成される。
StringBuilder sb = new StringBuilder();
sb.append("abc");
sb.append("def");
sb.append("ghi");
Strint str = new String(sb);  // "abcdefghi"


Stringクラスを使う場合でも、
内部的にはStringBuilderクラスなどを利用して連結しているので
最初からStringBuilderクラスを使うほうが無駄なメモリを消費しないうえに高速らしい。




パーフェクトJava (PERFECT SERIES) (PERFECT SERIES 2)/アリエル・ネットワーク株式会社
¥3,780
Amazon.co.jp

Javaの絵本 増補改訂版/(株)アンク
¥1,659
Amazon.co.jp
batファイルで、処理の最後に exit のみを書いておくと画面が閉じられてしまう。

画面を閉じたくない場合、
exit/b オプションをつけることで呼出し元に返るため、画面が閉じずに残る。
exit /b

⇒上記だとコマンドプロンプトを開いてから実行した場合は閉じないが、
batファイルをダブルクリックで起動した場合は閉じられてしまう

ダブルクリック起動時にも画面を残したい場合、
最後に cmd と書いておくと閉じずに残る
(というか再度コマンドプロンプトを開いているだけなので微妙・・・)

いろいろ探した結果、
下記のように入力を待って終了するのが良いかなと感じました。

echo キーを押すと終了します
set /P input=
exit