7-1-2 文字列を結合する3つの方法
- ローカル変数など、複数のスレッドからアクセスされない → StringBuilderクラス
- 複数のスレッドから使われる場合 → StringBufferクラス
7-2-4 Stringクラスのメソッドで正規表現を使う
- 1回だけ文字列処理をおこなう場合(アプリケーションを起動するときの引数処理など) → Stringクラスを使って簡潔に書く
- 大量の文字列を繰り返し処理する場合(ログファイルの処理など) → 自分でPatternクラスのオブジェクトを生成し、オブジェクトを使いまわす
7-3-2 MessageFormatについて
7-4-4 文字化けの原因と対策
- デフォルトエンコーディングを使わない事を徹底する
- Stringコンストラクタ(引数なしのもの)
- StringクラスのgetBytesメソッド(引数なしのもの)
- FileReaderクラス
- FileWriterクラス
- InputStreamReaderコンストラクタ(引数なしのもの)
- OutputStreamWriterコンストラクタ(引数なしのもの)
- 対策
- FileReaderクラス、FileWriterクラスは使わずに、FileInputStreamクラスとInputStreamReaderクラスで代用する
- それ以外のメソッドやコンストラクタでは、必ずエンコーディングやcharsetを指定する
8-1-2 Pathクラスで初期化する
- Pathクラスを用いたソースコードを書くようにし、既存のライブラリを扱うなどの必要に応じてFileクラスに変換する
- Pathsより生成する
9-2-1 Date and Time APIのメリット
- 日付・時間・日時をそれぞれ別クラスで扱うため、必要に応じて使い分けできる
- 年月日などを指定してインスタンスを生成できる
- 年月日の各フィールドの値を個別に取得できる
- 年月日の計算ができる
- イミュータブルである
9-2-2 日付・時間・日時をそれぞれ別クラスで扱う
- 日付 → java.time.LocalDateクラス → 年、月、日
- 時間 → java.time.LocalTimeクラス → 時、分、秒、ナノ秒
- 日時 → java.time.LocalDateTimeクラス → 年、月、日、時、分、秒、ナノ秒
9-3-3 SimpleDateFormatクラスはスレッドセーフではない
9-4-3 DateTimeFormatterクラスはスレッドセーフ