OLHub

Generics & Collections

Generics, type erasure, wildcard (? extends, ? super), PECS rule, Collections framework (List, Set, Map), khi nào chọn ArrayList vs LinkedList vs HashMap vs TreeMap.

10 bài · ~138 phútMiễn phí

Nội dung

Danh sách bài học

  1. 01

    Generics cơ bản — class và method nhận kiểu làm tham số

    Vì sao cần generics, cú pháp class/method generic, type parameter T, bounded type parameter (T extends Comparable), và ví dụ tự viết generic collection đơn giản.

    ~12 phút
  2. 02

    Type erasure — bản chất thực thi của generics Java

    Cơ chế Type Erasure xóa tham số kiểu ở bytecode, cơ chế sinh Bridge Method, các hạn chế kỹ thuật và giải pháp Type Token Class<T> trong Java.

    ~12 phút
  3. 03

    Wildcard `? extends`, `? super` — PECS rule

    Invariance của generics, upper bound wildcard, lower bound wildcard, rule PECS (Producer Extends Consumer Super) và unbounded wildcard List<?>.

    ~12 phút
  4. 04

    List và Queue — ArrayList, ArrayDeque, PriorityQueue

    Memory layout của ArrayList vs LinkedList, circular buffer của ArrayDeque và binary heap của PriorityQueue trong quản lý ấn phẩm thư viện.

    ~12 phút
  5. 05

    Map và Set — HashMap, TreeMap, HashSet

    Cơ chế bucket, chaining và treeify của HashMap, red-black tree của TreeMap và cơ chế dựng Set trên nền Map trong quản lý ấn phẩm thư viện.

    ~12 phút
  6. 06

    Iterator, fail-fast và ConcurrentModificationException

    Cơ chế modCount và expectedModCount trong ArrayList, nguyên nhân crash của for-each, 4 cách remove an toàn và bản chất fail-fast trong Java.

    ~12 phút
  7. 07

    Comparator và Comparable — thứ tự sắp xếp và hợp đồng so sánh

    Hợp đồng compareTo và compare, bẫy tràn số phép trừ, tính nhất quán với equals trong TreeSet và kỹ thuật chaining Comparator trong quản lý ấn phẩm.

    ~12 phút
  8. 08

    Immutable Collections — List.of và unmodifiableList

    So sánh List.of, List.copyOf và unmodifiableList, cơ chế shallow immutability và defensive copy pattern trong hệ thống quản lý ấn phẩm thư viện.

    ~12 phút
  9. 09

    Bounded Types và Generic Invariance trong Java

    Upper bounded types, multiple bounds, generic invariance vs array covariance và cơ chế type erasure trong hệ thống quản lý ấn phẩm thư viện.

    ~12 phút
  10. 10

    Mini-challenge: LRU Cache generic với LinkedHashMap

    Thiết kế generic LruCache<K, V> dựa trên LinkedHashMap, xử lý thread-safe bằng ReentrantLock và kiểm thử đa luồng trong quản lý ấn phẩm thư viện.

    ~30 phút