Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで1~3

2.4.1 クラスと変数はキャメルケースで,定数はスネークケースで

  • クラス名 → 大文字始まりのキャメルケース(パスカルケース)
  • 変数   → 小文字始まりのキャメルケース
  • 定数   → すべて大文字で、単語をアンダースコアで区切るスネークケース

2.4.4 「不吉な匂い」がする名前に気をつける

  • XxxInfo
  • XxxData
  • XxxManager

3.1.2 プリミティブ型

// Java7以降
long amount = 123_456_789L;
System.out.println(amount); // 123456789

3.1.3 ラッパークラス

  • プリミティブ型からラッパークラスへの変換は、valueOfメソッドを使う
  • プリミティブ型intの初期値は 0 、ラッパー型Integerの初期値は null
  • ファイルや通信から値を読み込む場合は Integer 推奨
  • 数値計算には int 推奨

3.2.7 インタフェース

  • Java8より、処理内容を定義するdefaultメソッドが追加された
  • 定数を定義することができる
  • メソッドの public abstract は省略可能
  • 定数の public static final は省略可能

3.2.8 匿名クラス

public interface TaskHandler {
    boolean handle(Task task);
}
public class AnonymousClassSample {
    public static void main(String... args) {
        TaskHandler taskHandler = new TaskHandler() {
            public boolean handle(Task task) {
                // taskに関する処理
            }
        };
        Task myTask = new Task();
        taskHandler.handle(myTask);
    }
}

3.3.1 instanceof演算子

3.3.2 オブジェクトの等価性

  • hashCodeメソッドによるハッシュ値には、次の性質があります
    • 同じオブジェクトのハッシュ値は、必ず同一となる
    • ハッシュ値が異なる場合には、異なるオブジェクトである
    • 異なるオブジェクトでもハッシュ値が同じになることがある
  • 高速にオブジェクトの等価判定ができる
  • Objects.hash メソッド
  • toStringメソッド
  • Apache Commons の Commons Lang ライブラリ
@Override
public String toString() {
    return ToStringBuilder.reflectionToString(this);
}

kameyatakefumi.hatenablog.com