Thẻ

#java

99 Ngày Java — Ngày 50: Checkpoint — xử lý file dữ liệu

Mốc nửa chặng: gộp mười bài vừa học thành một chương trình đọc CSV, thống kê bằng collections và xuất báo cáo — cùng quyết định phân biệt code chạy được với code dùng được: bỏ dòng hỏng hay dừng cả file.

15 thg 9, 20269 phút8
99 Ngày Java — Ngày 49: Debug & đọc lỗi hiệu quả

Hai dòng đầu stack trace nói gần hết câu chuyện, chuỗi Caused by phải đọc từ dưới lên, breakpoint có điều kiện và theo ngoại lệ — cùng ranh giới giữa lúc dùng debugger và lúc chỉ còn log.

14 thg 9, 20267 phút8
99 Ngày Java — Ngày 48: Logging đúng cách

Vì sao System.out.println không phải logging, SLF4J là cái cầu chứ không phải bộ ghi log, mức log là câu hỏi ai sẽ đọc dòng này, dấu {} là chuyện hiệu năng — và những thứ tuyệt đối không được log.

13 thg 9, 20268 phút4
99 Ngày Java — Ngày 47: Serialization & JSON

Vì sao Serializable của Java bị cả ngành rời bỏ, ObjectMapper tạo một lần dùng mãi, bẫy TypeReference khi đọc List do xóa kiểu — và vì sao record hợp với JSON tới mức không cần annotation nào.

12 thg 9, 20267 phút6
99 Ngày Java — Ngày 46: NIO.2 — Path & Files

Path là một cái tên chứ không phải một file, resolve và normalize cùng bẫy path traversal, Files ném ngoại lệ có tên thay vì trả false, ATOMIC_MOVE để ghi file an toàn — và walk, find, glob thay hẳn đệ quy tự viết.

11 thg 9, 20267 phút7
99 Ngày Java — Ngày 45: File I/O với java.io

Hai họ stream cho byte và reader cho ký tự, buffered biến một triệu syscall thành hơn trăm, bẫy charset mặc định làm vỡ tiếng Việt — và đọc file lớn bằng Files.lines thay vì nạp hết vào RAM.

10 thg 9, 20267 phút9
99 Ngày Java — Ngày 44: try-with-resources

Vì sao finally viết tay vừa dài vừa sai, cú pháp nhiều tài nguyên đóng theo thứ tự ngược, suppressed exception giữ lại lỗi gốc — và bẫy quên đóng stream của Files.walk.

9 thg 9, 20267 phút9
99 Ngày Java — Ngày 43: Custom exception & best practices

Khi nào đáng tạo exception mới và khi nào dùng lại loại chuẩn, thiết kế exception mang dữ liệu có cấu trúc chứ không chỉ message, ba nguyên tắc viết message — cùng cây phân cấp, mã lỗi và fail fast.

8 thg 9, 20269 phút12
99 Ngày Java — Ngày 42: try-catch-finally đúng cách

Thứ tự catch từ con tới cha và multi-catch, ba cái bẫy của finally — trong đó return làm exception biến mất không dấu vết — cùng chuyện ném lại hay bọc lại và cách xử lý InterruptedException.

7 thg 9, 20267 phút13