Thẻ

#java

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
99 Ngày Java — Ngày 41: Exception tổng quan

Cây thừa kế Throwable và vì sao nó quyết định cách hành xử, ranh giới checked với unchecked cùng câu hỏi duy nhất để phân loại, cách đọc stack trace từ Caused by — và bốn kiểu bắt exception khiến người khác khổ.

6 thg 9, 20267 phút25
99 Ngày Java — Ngày 40: Wildcard & PECS

Vì sao List<Integer> không truyền được vào List<Number>, ? extends chỉ đọc và ? super chỉ ghi, quy tắc PECS giải thích luôn chữ ký của nửa bộ Collections — cùng giới hạn và lúc không nên dùng wildcard.

5 thg 9, 20268 phút10
99 Ngày Java — Ngày 39: Generics cơ bản

Vì sao Generics tồn tại: bắt lỗi lúc biên dịch thay vì lúc chạy, lớp và method generic với bounded type, type erasure cùng bốn giới hạn của nó — và vì sao List<String> không phải con của List<Object>.

4 thg 9, 20268 phút10
99 Ngày Java — Ngày 38: Comparable & Comparator

Thứ tự tự nhiên gắn vào lớp với compareTo và bẫy tràn số khi trừ tay, Comparator ghép bằng comparing/thenComparing cùng bẫy reversed() đảo cả chuỗi — và vì sao TimSort ổn định lại quan trọng.

3 thg 9, 20268 phút11
99 Ngày Java — Ngày 37: Iterator & duyệt collection

for-each chỉ là đường cú pháp của Iterator: hợp đồng Iterable một method, cơ chế fail-fast với modCount sinh ra ConcurrentModificationException — và hai cách xóa đúng với removeIf và it.remove().

2 thg 9, 20267 phút8
99 Ngày Java — Ngày 36: Queue, Deque & Stack

FIFO xếp hàng và LIFO chồng đĩa, hai bộ method offer/poll/peek, ArrayDeque mảng vòng một mình hai vai (và bản án cho class Stack) — cùng PriorityQueue trên binary heap với bài toán top-K.

1 thg 9, 20269 phút10
99 Ngày Java — Ngày 35: TreeMap & LinkedHashMap

Cây đỏ-đen giữ key luôn sắp xếp với họ câu hỏi "gần nhất" của NavigableMap, sợi chỉ giữ thứ tự chèn của LinkedHashMap — và ảo thuật LRU cache trong mười dòng với removeEldestEntry.

31 thg 8, 20269 phút4