Java
Duyệt các bài viết được gắn thẻ Java
106 bài viết

Internationalization và Localization trong Java
Bài viết được sự cho phép của tác giả Lê Hồng Kỳ Internationalization và Localization trong Java sẽ đề cập đến Internationalization và Localization. Internationalization cũng có thể được viết tắt là i18n vì có 18 ký tự ở giữa I và N. Internationalization (quốc tế hoá) là một kỹ thuật cho phép chúng ta tạo ra các ứng dụng mà có thể thích ứng với nhiều ngôn ngữ và nhiều khu vực khác nhau. Localization cũng có thể được viết tắt là l10n vì 10 ký tự ở giữa L và N. Localization (nội địa hoá) là kỹ thuật giúp tạo ra một ứng dụng có thể thích ứng với một ngôn ngữ và vùng miền cụ thể. Như vậy, một ứng dụng hỗ trợ đa ngôn ngữ thì gọi là Internationalization (quốc tế hoá) và khi người dùng chọn một ngôn ngữ cụ thể để hiển thị thì gọi là Localization (nội địa hoá) Internationalization và localization trong Java – Các thành phần trong ứng dụng cần được quốc tế hóa Internationalization và localization trong Java – Quốc tế hoá các thông điệp (Messages) Chúng ta sẽ sử dụng lớp ResourceBundle để xử lý quốc tế hoá cho các message. Các message trong ứng dụng sẽ được khai báo trong tập tin properties thay vì viết trong code (hardcoded). Tên của tập tin properties đặt theo qui tắc filename_languagecode_countrycode với filename là tên tập tin, languagecode là mã ngôn ngữ, countrycode là mã quốc gia. Bên dưới là bảng mô tả language code và country code theo từng quốc gia. Country Language Code Country Code English en EN Germany de DE China zh CN Czech Republic cs CZ Netherlands nl AN France fr FR Italy it IT Japan ja JP Korea ko KR Russia ru RU Spain es...

Tìm hiểu cơ chế Lazy Evaluation của Stream trong Java 8
Bài viết được sự cho phép của tác giả Giang Phan 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. 10 tips để trở thành Java Developer xịn hơn Những mã xấu mà Java 8 có thể khử Xem thêm tuyển dụng Java lương cao trên Station D Như chúng ta đã biết, Stream có một đặc điểm rất quan trọng là cho phép tối ưu hóa hiệu xuất của chương trình thông qua cơ chế lazy evaluation , nghĩa là chúng không được thực hiện cho đến khi cần thiết. Các hoạt động tính toán trên source data chỉ được thực hiện khi một terminal operation được khởi tạo và các source element chỉ được sử dụng khi cần. Hãy xem ví dụ sau: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 import java.util.HashMap; import java.util.Map; import java.util.function.Predicate; import java.util.stream.Stream; import lombok.AllArgsConstructor; import lombok.Data; @Data @AllArgsConstructor class Employee { String name; String department; int salary; } class EmployeeRepository { private static final Map<Integer, Employee> employees = new HashMap<>(); static { employees.put( 1 , new Employee( "gpcoder 1" , "A" , 50 )); employees.put( 2 , new Employee( "gpcoder 2" , "B" , 100 )); employees.put( 3 , new Employee( "gpcoder 3" , "A"...