抽象クラスはインタフェースの役割に加えて実装を提供することができる。継承関係において関連するクラス間の共通の実装をまとめる。クラスの多重継承はできない。メソッドを組み合わせることで、複数のクラスが提供する実装を再利用することができる。型のハッシュ値を生成して返す。ハッシュ値はオブジェクト検索のパフォーマンス向上の目的で使用される。メソッドはメモリアドレスをもとに値を生成して返す。メソッドは、インタフェース型参照からのみ呼び出し可能。メソッドは、インタフェースのみで宣言可能な具象メソッドであり、実装クラスのインスタンス参照から呼び出し可能。メソッドを持つ複数のインタフェースを実装した場合はコンパイルエラーになる。コンパイルエラーを回避するには実装クラスで該当のメソッドをオーバーライドする。メンバークラス、メソッド内で宣言されるローカルクラスがある。メンバークラスとローカルクラスは内部クラスと呼ばれる。内部クラスは匿名クラスとして利用できる。メンバークラスにはアクセス修飾子を付けることができる。メンバークラスとなる。メソッドから利用するには、外部クラスのインスタンス参照が必要。外部クラスのインスタンスを生成して、その参照を用いて内部クラスのインスタンスを生成する。フィールドには、その内部クラスが宣言されているクラスのメンバーメソッドから直接アクセスできる。コンパイラによって挿入される。明示的に記述する必要がある。クラスのサブクラスとしてコンパイルされる。コレクションとジェネリクス型パラメータは、アノテーション、型変数、型境界の要素から構成される。(アノテーションと型境界は省略可)総称型を利用する場合には、型変数に対して実際に利用する型を割り当てる必要がある。型引数に指定できるのは配列型を含む参照型のみ。(T.class)ジェネリックメソッドは戻り値の記述の前に型パラメータを宣言する。キーワードを利用して型変数が取り得る型に制約を課すことができる。{}型境界に指定する型には宣言している他の型変数が使用できる。{}総称型をパラメータ化する際の型引数にはワイルドカードを記述することができる。型変数にはワイルドカードは記述できない。Foo<?>())ワイルドカードに対しては2種類の型境界を指定することができる。型境界の上限をT型に制限する。取り得る型はTかTのサブクラスとなる。型境界の下限をT型に制限する。取り得る型はTかTのスーパークラスとなる。Bound)総称型を継承または実装する場合は、型引数を指定して総称型をパラメータ化する。インタフェースは、インデックスによって順序付けられるデータ構造を表すコレクションインタフェース。インタフェースの実装クラス。ランダムアクセスは高速。要素の追加は、追加する位置が先頭に近いか、要素数が多いほどパフォーマンスが劣化する。クラスは、双方向連結リストと呼ばれる。比べるとパフォーマンスは劣る。比べてパフォーマンスは優れる。クラスはスレッドアンセーフ。クラスなどの実装クラスが存在する。要素の追加や削除はできない。インタフェースのサブインタフェースで、要素の挿入や削除においてブロッキングする機能を提供する。キューが満杯の場合は空きができるまで待機する。クラスなどが存在する。インタフェースのサブインタフェースで、両端から要素を挿入/削除できるデータ構造を表す。クラスなどが存在する。インタフェースはインデックスによる要素アクセスは非サポート。クラスは内部で配列を使用する。要素として格納できない。