Garbage collector trong Java: G1, ZGC và cách chọn
So sánh G1 và ZGC trong Java 21: cách hoạt động, cách bật, đọc GC log, kiểm tra GC đang chạy và tiêu chí chọn GC cho ứng dụng Spring Boot.
So sánh G1 và ZGC trong Java 21: cách hoạt động, cách bật, đọc GC log, kiểm tra GC đang chạy và tiêu chí chọn GC cho ứng dụng Spring Boot.
Dùng LocalDate, ZonedDateTime và Duration đúng chỗ: tính ngày, đổi múi giờ, xử lý giờ mùa hè và viết test ổn định với Clock.
So sánh List.of, List.copyOf và Collections.unmodifiableList: cái nào là bản sao, cái nào chỉ là view, xử lý null ra sao, và khi nào dùng cái nào.
So sánh các loại thread pool trong Java 21: fixed, cached, scheduled, work-stealing, virtual thread. Cách tự cấu hình ThreadPoolExecutor và dùng an toàn trong Spring Boot.
Phân biệt checked và unchecked exception, chọn đúng loại, thiết kế exception riêng có ngữ cảnh và tránh các anti-pattern hay gặp.
Dùng Comparator.comparing, thenComparing, reversed và nullsLast để sắp xếp theo nhiều tiêu chí, kèm các lỗi hay gặp khi dùng.
Học cách nhóm và chia dữ liệu bằng Collectors.groupingBy, partitioningBy và downstream collector như counting, mapping, filtering trong Java 21.
Viết chuỗi nhiều dòng gọn hơn với text block, nắm quy tắc thụt lề và escape, cùng các method mới của String như formatted, stripIndent, translateEscapes.
Hiểu vì sao List<Integer> không phải List<Number>, khi nào dùng ? extends, khi nào dùng ? super, và nguyên tắc PECS qua ví dụ cụ thể.
Cách dùng try-with-resources để tự động đóng tài nguyên, tự viết lớp AutoCloseable, hiểu suppressed exception và các lỗi hay gặp.
So sánh HashMap, Collections.synchronizedMap và ConcurrentHashMap về thread-safety, cơ chế lock, iterator, null và hiệu năng, kèm ví dụ và test.
Hiểu hợp đồng giữa equals() và hashCode() trong Java, cách cài đặt đúng và những lỗi phổ biến làm HashSet, HashMap hoạt động sai.
Dùng CompletableFuture trong Java 21 để gọi nhiều service song song, nối và ghép kết quả, xử lý lỗi, timeout và viết test cho code bất đồng bộ.
Dùng sealed classes, pattern matching cho switch và record patterns trong Java 21 để thay chuỗi if-instanceof bằng code ngắn hơn, được compiler kiểm tra đủ trường hợp.
Hướng dẫn dùng Optional trong Java đúng mục đích, kèm các anti-pattern phổ biến và cách tránh để code rõ ràng, an toàn hơn.
Tìm hiểu bốn "trụ cột" của Stream API trong Java qua ví dụ thực tế với Order, Customer – từ lọc dữ liệu đến tổng hợp kết quả.
Tìm hiểu record trong Java giải quyết vấn đề gì, cách dùng đúng cho DTO, value object, và những trường hợp nên tránh.
Tìm hiểu virtual threads trong Java 21 qua ví dụ cụ thể, so sánh với platform thread và cách dùng trong Spring Boot.