Stream khiến mã trông gọn gàng ngay cả khi nó khó hiểu — và đó là cái bẫy
Ba cách viết cùng một phép tính, tách chuỗi không tốn thêm lần duyệt, và bốn dấu hiệu cho biết bạn nên quay về vòng lặp.
Ba cách viết cùng một phép tính, tách chuỗi không tốn thêm lần duyệt, và bốn dấu hiệu cho biết bạn nên quay về vòng lặp.
AbstractList cho bạn miễn phí toString, contains, subList, iterator, equals, hashCode. Kèm một danh sách sáu phần tử không lưu phần tử nào.
Vì sao final chỉ khoá con trỏ chứ không khoá nội dung, sao chép phòng vệ ở cả cửa vào lẫn cửa ra và phải làm trước khi kiểm tra, và vì sao chọn kiểu bất biến là cách chữa tận gốc.
Thiết kế ngoại lệ nghiệp vụ có trường riêng, đo chi phí chụp stack trace — 110 ms so với 7 ms cho 200.000 lần — và khi nào nên tắt nó đi.
Mỗi nguyên tắc SOLID một đoạn mã trước và sau, cùng phép thử chạy được cho thấy vi phạm Liskov làm hỏng hàm không hề biết gì về lớp con.
Interface có phương thức default từ Java 8 nên ranh giới mờ đi nhiều. Hai thứ còn khác thật sự — giữ trạng thái và số lượng kế thừa được — cùng hai câu hỏi để chọn và một ví dụ chuyển từ lớp trừu tượng sang interface.