Java OO & Functional
Course tier 2 trong track Java. Sau khi nắm OOP cơ bản từ Foundations, học inheritance/polymorphism sâu hơn, exception handling chuẩn, generics + collections, và Stream API + lambda để viết Java functional idiomatic.
Giảng viên
OLHub Team38bài đã sẵn sàng · Đọc kỹ, không xem video
4 module
Học theo từng phần, không bị nhồi
Trung cấp
Cần nền tảng cơ bản trước
38 bài
Text-first — đọc kỹ, không xem video
~11.4 giờ
Tự nhịp, học theo tốc độ của bạn
Bạn sẽ học được gì
Sau khoá học, bạn sẽ:
Compare inheritance vs composition và choose pattern phù hợp
Implement generic class/method với bounded type parameter và wildcards
Diagnose ConcurrentModificationException và refactor sang fail-safe iterator
Refactor imperative loop sang Stream pipeline với method reference
Choose checked vs unchecked exception cho từng business case
Kỹ năng
Bạn sẽ thành thạo
Chương trình
Nội dung khoá học
4 module · 38 bài. Mỗi bài 18-25 phút đọc kỹ — không xem video, không hype.
01
Kế thừa & Đa hình
9 bài · ~157 phút
- 01Tư duy trừu tượng hoá — trụ cột quan trọng nhất của OOP14p
- 02Nhận diện abstraction sai — over-engineering trap và cách sửa13p
- 03`extends` và `super` — kế thừa cơ bản17p
- 04Override và dynamic dispatch — đa hình ở runtime18p
- 05Abstract class — template buộc subclass hoàn thiện15p
- 06Interface — hợp đồng capability với default method18p
- 07Sealed class — kiểm soát tập subtype với pattern matching exhaustive16p
- 08Composition over inheritance — khi nào KHÔNG kế thừa16p
- 09Mini-challenge: Sở thú — sealed + record + pattern matching30p
02
Exception Handling
7 bài · ~125 phút
- 01try / catch / finally — cây Throwable và cơ chế throw20p
- 02Đọc stack trace và cause chain — giữ dấu vết lỗi qua mọi layer14p
- 03Exception table và cost của exception — throw rẻ, tạo đắt14p
- 04Checked vs Unchecked — cuộc tranh cãi kéo dài 20 năm16p
- 05try-with-resources — tự đóng resource không rò rỉ15p
- 06Custom exception — thiết kế hierarchy exception nghiệp vụ16p
- 07Mini-challenge: Validator chain với exception30p
03
Generics & Collections
10 bài · ~214 phút
- 01Generics cơ bản — class và method nhận kiểu làm tham số18p
- 02Type erasure — sự thật không dễ chịu của generics Java18p
- 03Wildcard `? extends`, `? super` — PECS rule18p
- 04List và Queue — ArrayList, LinkedList, ArrayDeque, PriorityQueue22p
- 05Map và Set — HashMap, TreeMap, HashSet bên dưới22p
- 06Iterator, fail-fast và ConcurrentModificationException — vì sao remove trong for-each crash22p
- 07Comparator và Comparable — vì sao Java cần 2 interface sắp xếp22p
- 08Immutable Collections — List.of, Map.copyOf và cạm bẫy unmodifiableList20p
- 09Bounded Types và Generic Invariance — vì sao List<Integer> không phải List<Number>22p
- 10Mini-challenge: LRU Cache generic với LinkedHashMap30p
04
Stream API & Lambda
12 bài · ~188 phút
- 01Tổng quan module — Stream API & Lambda5p
- 02Lambda và functional interface — hàm trở thành giá trị15p
- 03Method reference và invokedynamic — lambda bên dưới bytecode14p
- 04Stream basics — pipeline lazy và terminal operation13p
- 05map / filter / reduce — ba operation cốt lõi15p
- 06Stream nâng cao — flatMap, takeWhile và peek14p
- 07Optional — xử lý null không vỡ15p
- 08Collectors Deep — toMap, groupingBy, partitioningBy và custom Collector22p
- 09Parallel Stream — khi nào thực sự nhanh hơn, khi nào nguy hiểm20p
- 10Immutability và Functional Style — thiết kế Java không có surprise15p
- 11Mini-challenge: Sales report với stream pipeline30p
- 12Tổng kết module — Stream API & Lambda10p
Giảng viên
Ai đứng sau khoá này
OLHub Team
Backend engineers
Backend engineers với kinh nghiệm thực tế trên Java/Spring, PostgreSQL, distributed systems. Tự build và maintain platform này, viết toàn bộ nội dung khoá học theo triết lý “hiểu bản chất, không học vẹt”.
Xem hồ sơ team →Sẵn sàng bắt đầu?
Học miễn phí, không cần thẻ, không thời hạn. Chỉ cần bạn ngồi xuống đọc kỹ.