0
1

JavaGold 自分用黒本メモ

Last updated at Posted at 2024-02-27

1章

java.util.Comparator

  • compareメソッドを持つ関数型インターフェース

    • o1がo2より小さい場合は負の整数を返す。
    • o1がo2と等しい場合はゼロを返す。
    • o1がo2より大きい場合は正の整数を返す。
Comparator<String> comparator = new Comparator<String>() {
            public int compare(String o1, String o2) {
                return o1.compareTo(o2);
            }
        };

匿名クラスには名前がないため、コンストラクタは定義できない

staticメソッドは、インスタンスがなくても動作するのでオーバーライドできない

staticではないインナークラスには、
staticなフィールドやメソッドを定義できない

ローカルクラスから参照するローカル変数は、
実質的finalでなければいけない
 →そうではない場合はコンパイルエラー

2章

3章

newFixedThreadPool
あらかじめいくつかのスレッドを作って
プールしておき、時間の経過で不要な
スレッドを削除する

4章

  List<String> list = new ArrayList<String>();
  
  list.add("D");
  list.add("C");
  list.add("F");

  list.forEach((str) -> System.out.println(str));
  • プリミティブ型配列から Streamを作る場合は
    プリミティブ型のStream(IntStreamなど)を使用する

  • ラッパー型のリストからparallelStreamを作る場合は
    戻り値はStream<ラッパー型>になる

  • 終端操作を2つ以上実行した場合
    実行時にIllegalStateExceptionがスローされる

  • Stream.reduce()
    引数が1個の場合は戻り値Optional
    引数が2個の場合は戻り値 第一引数(初期値)の型

5章

  • File.listFiles: ディレクトリ内のファイル・ディレクトリの一覧を
          Fileクラスで取得する
  • File.list: ディレクトリ内のファイル・ディレクトリの一覧を
         文字列の配列で取得する

文字ストリーム バイトストリーム
入力 java.io.Reader java.io.InputStream
出力 java.io.Writer java.io.Output Stream
  • BufferdReader、BufferdInputStreamはReaderより効率的に読み込める
  • デシリアライズ: read Object
    シリアライズ: writeObject
  • Pathオブジェクトの取得
    • Paths.get("C://hoge/")
    • new File("C://hoge/").toPath()

6章

  • java.sql.Connectionの参照を取得するには、
    java.sql.DriverManagerのgetConnectionを使用する。

  • PreparedStatementのsetXXXの引数に
    0を渡した場合は、実行時にSQLExceptionがスローされる

  • Prepared StatementのsetXXXの引数に
    値を指定してない場合も、実行時にSQLExceptionがスローされる

  • PreparedStatement.executeUpdate

    • データの挿入・更新・削除で使用する
  • ストアドプロシージャの呼び出し

    • Connection.prepare Call("call プロシージャ名")

7章

  • 上限境界ワイルドカードをつかってジェネリクスを宣言して
    変数を作成しても、nullリテラルしか代入できない
  • 戻り値を戻すことが目的の場合はentends
  • 引数を受け取って利用することが目的の場合はsuper
    PECS

8章

9章

10章

  • Locale.Builder はstaticインナークラスなので
    new Locale.Builder() のように宣言できる

  • Properties.get(): 引数がObject型
    Properties.getProperty(): 引数が String型

  • Properties.list(): プロパティファイルの中身を一覧表示

  • ResourceBundleは抽象クラスなので
    newでインスタンスを生成できない

11章

12章

整数オーバーフロー攻撃への対策

  1. 事前条件テスト
  2. アップキャスト
  3. BigIntegerクラスを使う

不変オブジェクトは
コンストラクタのアクセス修飾子をなし、
もしくはprivateにして外部パッケージからインスタンス化させないようにする
→ インスタンスを作成する場合はビルダーを提供する

シリアライズプロキシパターン
 シリアライズ  : writeReplace
 デシリアライズ : readResolve

総仕上げ問題



  • ラッパークラス同士でボクシング、アンボクシングはできない

  • インタフェースには
    インスタンスフィールドを定義できないが、
    抽象クラスには定義できる



0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1