Trong bài này, tôi sẽ giới thiệu với các bạn cách sử dụng một số tính năng mới trong Java 8 như Lambda , Function, Supplier, … để refactor code của một số Design Pattern. Refactoring Strategy Design Pattern Strategy Pattern là gì? Các bạn xem lại bài viết “Hướng dẫn Java Design Pattern – […]
Tìm hiểu cơ chế Lazy Evaluation của Stream trong Java 8
Trong bài viết “Giới thiệu về Stream API trong Java 8” , chúng ta đã tìm hiểu về các đặc điểm, các làm việc của Stream trong Java 8. Ở bài viết này, tôi muốn giải thích kỹ hơn về cơ chế Lazy Evaluation của Stream trong Java 8. Như chúng ta đã biết, Stream […]
Loại bỏ các phần tử trùng trong một ArrayList như thế nào trong Java 8?
Trong bài viết Loại bỏ các phần tử trùng trong một ArrayList , tôi đã giới thiệu với các bạn các cách để loại bỏ phần tử trùng trong một ArrayList với Java <= 7. Trong bài này, tôi sẽ giới thiệu với các bạn một số cách khác với sự hỗ trợ của các tính năng […]
Thực thi nhiều tác vụ cùng lúc như thế nào trong Java?
Trong bài viết về CompletableFuture, chúng ta đã tìm hiểu về cách sử dụng multi-thread trong Java 8. Trong bài này, chúng ta sẽ cùng xem cách sử dụng CompletableFuture trong một bài toán thực tế. Giả sử chúng ta có một ứng dụng cần thực hiện 2 công việc, tạm gọi là work1 và work2. […]
Hướng dẫn Java Design Pattern – Null Object
Trong lập trình hướng đối tượng, chúng ta thường xuyên kiểm tra một đối tượng xem có bằng null hay không trước khi thực hiện các phương thức của đối tượng để tránh lỗi Null Pointer Exception (NPE). Null không phải là một đối tượng, nó là một giá trị, các thao tác trên so […]
Tránh lỗi ConcurrentModificationException trong Java như thế nào?
Một trong những vấn đề phổ biến trong khi loại bỏ các phần tử từ một ArrayList trong Java là ConcurrentModificationException. Nếu bạn sử dụng vòng lặp foreach và cố gắng thêm/ xóa phần tử khỏi ArrayList bằng phương thức remove(), bạn sẽ nhận được ConcurrentModificationException. Tuy nhiên, nếu bạn sử dụng phương thức xóa […]
Giới thiệu WatchService API trong Java
Giới thiệu Khi đang chỉnh sửa một tệp, sử dụng một IDE hay một trình soạn thảo khác, và một hộp thoại xuất hiện để thông báo cho bạn rằng một trong các tệp đang mở đã thay đổi trên hệ thống tệp và cần được tải lại? Hay một trình quản lý file có […]
Base64 encoding và decoding trong Java 8
Trong bài này, chúng ta sẽ cùng tìm hiểu chức năng mã hóa (encode) và giải mã (decode) theo chuẩn Base64 trong Java 8 và sử dụng thư viện Apache Commons Code. Giới thiệu Encode và Decode là gì? Encode và Decode là những khái niệm dùng để chỉ đến việc chuyển đổi dữ liệu cho […]