【Java学習】01 StringとStringBuilder [Java SE 11 Silver 紫本]

Java SE 11 Silver 紫本のChapter3まで読了しました。よく出来た本ですが紙幅が限られているためか総じて説明が足りないです。

例えばこの方法ではこれができないので別の方法になります、という説明に終始しています。いや一工夫したら別の方法じゃなくてもできるでしょというケースもあるのですが、説明が先に進まないので仕方ない面はあります。せめて注釈でその一工夫に言及してほしかったです。

StringとStringBuilderの違いについては、Pythonの”sortedとsort”と同様に可逆的、不可逆的(あるいは非破壊的、破壊的)の対比と考えれば理解しやすいです。

最後まで読み通して理解し修得できたら、取りあえずJava初心者を脱してJava初級者を名乗れるでしょうか。

public class Main {
  public static void main(String[] args) {
    String str = new String("Hello");
    StringBuilder sb = new StringBuilder("Hello");
    String str2 = str.concat(" dear"); // 可逆的変更なので新たに変数設定して戻り値を捕捉する。
    sb.append(" dear"); // 不可逆的変更なので新変数の設定不要
    System.out.println("str: " + str + ", str2: " + str2 + ", sb: " + sb);
  }
}
--------------------------------------------------

出力
--------------------------------------------------
str: Hello, str2: Hello dear, sb: Hello dear