Java là ngôn ngữ của hệ thống lớn — ngân hàng, viễn thông, thương mại điện tử, Android. Sub-pillar này dạy Java 21 LTS với cú pháp hiện đại (record, sealed, switch expression, text block, virtual thread), không phải Java 8 của mười năm trước. Trọng tâm: hiểu vì sao JVM, Collections, Generics và mô hình bộ nhớ được thiết kế như vậy — chứ không chỉ nhớ cú pháp.
Bốn giai đoạn: nền tảng (1-3) → hướng đối tượng (4-6) → thư viện cốt lõi (7-11) → hệ thống thật (12-14). Mỗi chương ~1200-1600 dòng, có lý thuyết chi tiết, code chạy được, sơ đồ, 5 bài tập, 7-8 quiz và cheat sheet.
JDK/JRE/JVM khác nhau ra sao, cài bằng SDKMAN, javac/java, bytecode, JShell, Maven vs Gradle, cấu trúc dự án.
8 kiểu nguyên thủy, kiểu tham chiếu, autoboxing và bẫy == với Integer, var, String pool, BigDecimal, bảng toán tử đầy đủ.
if/switch expression (Java 14+), pattern matching, vòng lặp, mảng một và nhiều chiều, Scanner, String.format.
Class, constructor, this, bốn mức truy cập, getter/setter, static, khối khởi tạo, package, import, vòng đời object.
extends, super, override vs overload, abstract, interface với default/static method, record, sealed, enum, inner class.
Cây phân cấp Throwable, checked vs unchecked, throws vs throw, try-with-resources, custom exception, đọc stack trace.
Cây phân cấp Iterable/Collection, ArrayList vs LinkedList, HashSet/TreeSet, Deque, độ phức tạp, chọn đúng cấu trúc.
equals/hashCodeHashMap hoạt động bên trong (bucket, va chạm, treeify), LinkedHashMap, TreeMap, vì sao tránh Hashtable, quy tắc key bất biến.
Type parameter, generic class/method, bounded type, wildcard và nguyên tắc PECS, type erasure và mọi hệ quả của nó.
Functional interface, lambda, method reference, Stream (intermediate vs terminal), Collectors, Optional dùng đúng cách, parallel stream.
File vs Path, stream byte/ký tự, Buffered, NIO.2 Files, Serializable, transient, serialVersionUID, JSON hiện đại.
Thread, ExecutorService, synchronized, volatile, deadlock, collection an toàn luồng, CompletableFuture, virtual thread (Java 21).
Kiến trúc JDBC, Connection, Statement vs PreparedStatement, SQL injection, ResultSet, giao dịch, connection pool (HikariCP), mẫu DAO.
JUnit 5, assertion, parameterized test, Mockito, Maven/Gradle, đóng gói JAR, và một ứng dụng quản lý hoàn chỉnh ghép cả 13 chương.
Java không còn là ngôn ngữ "hot" trên mạng xã hội, nhưng nó vẫn chạy phần lớn hệ thống backend quan trọng của thế giới: ngân hàng lõi, thanh toán, viễn thông, sàn thương mại điện tử, dữ liệu lớn (Hadoop, Spark, Kafka đều viết bằng Java/Scala trên JVM), và toàn bộ Android.
Điều đó có nghĩa: nhu cầu tuyển dụng ổn định, hệ sinh thái cực kỳ trưởng thành, và — quan trọng nhất với người học — Java buộc bạn phải nói rõ mọi thứ. Kiểu dữ liệu tường minh, ngoại lệ được kiểm tra, mô hình bộ nhớ rõ ràng. Học Java xong, bạn hiểu được vì sao Python hay JavaScript chọn làm khác.
Người mới hoàn toàn — Java dài dòng hơn Python nhưng chính sự dài dòng đó khiến mọi khái
niệm (kiểu, phạm vi, đối tượng, tham chiếu) trở nên hiển hiện, không có gì ngầm ẩn.
Đã biết Python/JS — mỗi chương có callout đối chiếu, chỉ rõ chỗ Java làm khác và vì sao.
Chuẩn bị phỏng vấn — các mục "Góc phỏng vấn" nêu đúng những câu hay được hỏi:
HashMap hoạt động thế nào, equals/hashCode, type erasure,
String pool, deadlock.
Phần lớn tutorial Java tiếng Việt vẫn dừng ở Java 8 (phát hành 2014) — dùng
Date thay LocalDate, Vector/Hashtable thay
ArrayList/HashMap, viết getter/setter tay thay record, và
switch kiểu cũ với break ở mọi nhánh.
Sub-pillar này lấy Java 21 LTS làm chuẩn và ghi rõ phiên bản cho từng tính năng, để bạn biết code của mình chạy được ở đâu. Nơi nào cách viết cũ vẫn hay gặp trong dự án thật, chúng ta học cả hai — nhưng luôn nói rõ cái nào nên dùng.
Mỗi chương có mục "Kết nối" trỏ tới chương tương ứng ở sub-pillar khác. Ba đối chiếu đáng chú ý nhất:
yield.
Java cũng nối chặt với các trụ cột nền tảng: OOP (trụ cột 6) tìm được ví dụ cụ thể nhất ở đây; DSA (trụ cột 2) dùng Collections làm công cụ; Database (trụ cột 5) gặp lại ở Chương 13 (JDBC); OS (trụ cột 3) giải thích luồng và bộ nhớ ở Chương 12.