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 Team38 bà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
~8.5 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 sẵn sàng · 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 · ~122 phút
- 01Tư Duy Trừu Tượng Hóa: Trụ Cột Quan Trọng Nhất Của OOP12p
- 02Nhận diện abstraction sai — over-engineering trap và cách sửa13p
- 03`extends` và `super` — kế thừa cơ bản12p
- 04Override và dynamic dispatch — đa hình ở runtime12p
- 05Abstract class — template buộc subclass hoàn thiện12p
- 06Interface — hợp đồng capability với default method12p
- 07Sealed class — kiểm soát tập subtype với pattern matching exhaustive12p
- 08Composition over inheritance — khi nào KHÔNG kế thừa12p
- 09Mini-challenge: Thư viện đa phương tiện với sealed và record25p
02
Exception Handling
7 bài · ~97 phút
- 01try, catch, finally — cây Throwable và cơ chế throw12p
- 02Đọc stack trace và cause chain — giữ dấu vết lỗi qua mọi layer12p
- 03Exception table và cost của exception — throw rẻ, tạo đắt12p
- 04Checked vs Unchecked — cuộc tranh luận lớn trong thiết kế Java12p
- 05try-with-resources — tự đóng resource không rò rỉ12p
- 06Custom exception — thiết kế phân cấp exception nghiệp vụ12p
- 07Mini-challenge: Bộ kiểm thực mượn ấn phẩm với custom exception25p
03
Generics & Collections
10 bài · ~138 phút
- 01Generics cơ bản — class và method nhận kiểu làm tham số12p
- 02Type erasure — bản chất thực thi của generics Java12p
- 03Wildcard `? extends`, `? super` — PECS rule12p
- 04List và Queue — ArrayList, ArrayDeque, PriorityQueue12p
- 05Map và Set — HashMap, TreeMap, HashSet12p
- 06Iterator, fail-fast và ConcurrentModificationException12p
- 07Comparator và Comparable — thứ tự sắp xếp và hợp đồng so sánh12p
- 08Immutable Collections — List.of và unmodifiableList12p
- 09Bounded Types và Generic Invariance trong Java12p
- 10Mini-challenge: LRU Cache generic với LinkedHashMap30p
04
Stream API & Lambda
12 bài · ~153 phút
- 01Tổng quan module — Stream API & Lambda5p
- 02Lambda và Functional Interface trong Java12p
- 03Method Reference và invokedynamic: Cơ Chế Bytecode Bên Dưới Lambda12p
- 04Stream Basics: Pipeline Lazy và Terminal Operation12p
- 05Map, Filter và Reduce: Ba Thao Tác Cốt Lõi Của Stream API12p
- 06Stream Nâng Cao: flatMap, takeWhile, dropWhile và Stateful Operations12p
- 07Optional: Xử Lý Thiếu Dữ Liệu An Toàn Thay Thế Con Trỏ Null12p
- 08Collectors Deep Dive: toMap, groupingBy và Custom Collector12p
- 09Parallel Stream: Khi Nào Nên Dùng và Cạm Bẫy Luồng Phổ Biến12p
- 10Immutability và Functional Style: Thiết Kế Code Java Không Có Bất Ngờ12p
- 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 →Gửi khoá này cho bạn học cùng?
Copy link đã gắn nguồn — dán group, chat, hoặc LinkedIn.
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ỹ.