Java Internals & Concurrency
Course tier 3 trong track Java. Đào sâu JMM, concurrency primitives, blocking vs NIO selector, và JVM internals (bytecode, GC tuning, heap dump). Mục tiêu: debug được performance/memory leak production.
Giảng viên
OLHub Team42bà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
Nâng cao
Cho dev đã có kinh nghiệm
42 bài
Text-first — đọc kỹ, không xem video
~11.8 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ẽ:
Explain JMM happens-before, volatile, synchronized — predict race condition
Implement thread-safe class với 3 chiến lược: immutable, lock, atomic
Diagnose memory leak qua heap dump + jvisualvm
Compare blocking I/O vs NIO selector và choose đúng usecase
Predict hành vi GC khi tune -Xmx, -XX:+UseG1GC trên workload thực tế
Chương trình
Nội dung khoá học
4 module · 42 bài. Mỗi bài 18-25 phút đọc kỹ — không xem video, không hype.
01
Concurrency cơ bản
19 bài · ~257 phút
- 01Module 01 — Concurrency cơ bản: tổng quan10p
- 02Process và Thread — từ nền tảng hệ điều hành đến Java Concurrency15p
- 03Thread API và vòng đời — start, join, interrupt14p
- 04Thread Safety: Viết code đúng khi nhiều thread cùng chạm vào dữ liệu14p
- 05Confinement: Thread safety bằng cách không chia sẻ14p
- 06Immutability: Thread safety bằng cách không thay đổi14p
- 07volatile & synchronized: Hai cơ chế đồng bộ nội tại của Java15p
- 08Atomic & CAS: đồng bộ lock-free cho thao tác trên một biến14p
- 09ReentrantLock & Condition — khi synchronized là chưa đủ13p
- 10ReadWriteLock, StampedLock & AQS — khi đọc áp đảo ghi13p
- 11Delegation & concurrent collections: tái dùng lớp thread-safe13p
- 12Blocking queue & producer–consumer: tách nhịp sản xuất–tiêu thụ13p
- 13Synchronizers: Điều phối tiến độ giữa nhiều thread13p
- 14Executor Framework: Thread pool, lập lịch & shutdown13p
- 15Future & CompletableFuture: từ blocking tới pipeline async13p
- 16Fork/Join: Chia để trị song song với work-stealing13p
- 17Virtual Threads: mô hình thread-per-request trở lại15p
- 18Structured Concurrency & ScopedValue: vòng đời nhóm task13p
- 19Module 01 — Tổng kết & cheat sheet15p
02
I/O & NIO
7 bài · ~111 phút
- 01I/O cổ điển — InputStream, Reader, buffered wrapper14p
- 02Path và Files — NIO.2 thay java.io.File13p
- 03Duyệt thư mục và theo dõi file — walk, atomic swap, WatchService13p
- 04Serialization — cơ chế, serialVersionUID và transient14p
- 05Deserialization — lỗ hổng RCE và alternatives JSON/Protobuf13p
- 06Stream file — Files.lines, memory-mapped, channel14p
- 07Mini-challenge: Log aggregator với NIO.2 và Stream30p
03
JVM Internals
13 bài · ~280 phút
- 01Class loader — load, link, init và parent delegation25p
- 02Class file và javap — đọc instruction JVM từ binary14p
- 035 lệnh invoke và invokedynamic — method dispatch trong JVM14p
- 04JIT compiler — interpreter, C1, C2, tiered compilation27p
- 05Memory layout — heap, metaspace, stack, object header25p
- 06Garbage Collection — G1, ZGC, Parallel và cách chọn28p
- 07CLI tools chẩn đoán JVM — jps, jstack, jmap, jstat, jcmd15p
- 08JFR và profiling — Flight Recorder, JMC, async-profiler14p
- 09Object header và Compressed OOP — vì sao object tốn 16 byte20p
- 10Escape analysis và scalar replacement — khi JIT xoá object21p
- 11Safepoint và STW — vì sao GC pause dài hơn GC log báo20p
- 12GC modern — G1, ZGC, Shenandoah: cơ chế và khi nào chọn22p
- 13Mini-challenge: Debug memory leak với heap dump và JFR35p
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ỹ.