Các chủ đề có trong bài thi
https://www.mindmeister.com/map/2593578802
- Xử lý ngày tháng, giờ giấc, văn bản, giá trị số và kiểu boolean
- Sử dụng kiểu dữ liệu nguyên thủy và wrapper class, bao gồm Math API, các cặp dấu ngoặc đơn (parentheses), convert kiểu lên cấp cha, ép kiểu về cấp dưới, đánh giá các biểu thức số học và boolean.
- Thao tác với văn bản, bao gồm khối văn bản, việc sử dụng String và StringBuilder.
- Điều khiển luồng chương trình
- Tạo cấu trúc luồng điều khiển chương trình chứa câu lệnh if/else, switch và các biểu thức, các vòng lặp, lệnh break và continue.
- Sử dụng cách tiếp cận Hướng đối tượng trong Java
- Khai báo và khởi tạo object java bao gồm các object lớp lồng nhau, và giải thích vòng đời đối tượng, bao gồm việc tạo, việc tham chiếu gán và thu gom bộ nhớ.
- Tạo các class và record, định nghĩa và sử dụng instant field / static field, phương thức, constructor, khởi tạo instance.
- Triển khai overload method, bao gồm var-arg trong đối số phương thức.
- Hiểu về tầm vực của biến, sử dụng nội suy kiểu của biến cục bộ, áp dụng bao đóng, và làm cho objects bất biến.
- Triển khai kế thừa, bao gồm class trừu tượng (abstract) và sealed. Override method, chứa class Object. Triển khai tính đa hình và kiểu đối tượng và phan biệt loại object so với loại tham chiếu. Thực hiện ép kiểu, xác định kiểu đối tượng sử dụng toán tử instanceof và so khớp mẫu (pattern matching).
- Tạo và sử dụng interface, xác định functional interface, và sử dụng biến private static, và phương thức interface mặc định.
- Tạo và sử dụng dạng liệt kê với field, các phương thức và hàm tạo.
- Xử lý ngoại lệ
- Xử lý exception sử dụng try / catch / finally , try-with-resources, việc dùng nhiều khối lệnh catch nối tiếp nhau, bao gồm cả exception tự viết.
- Làm việc với mảng và Collection
- Tạo mảng Java, List, Set, Map, Deque trong Collection và thêm, xóa, cập nhật, lấy và sắp xếp các thành phần của chúng.
- Làm việc vơi Stream và biểu thức Lambda
- Sử dụng Streams, bao gồm biểu thức lamba của kiểu dữ liệu Java object và kiểu dữ liệu nguyên thủy để sử dụng functional interface, để cung cấp (supply), lọc (filter), ánh xạ (map), tiêu dùng (consume), và sắp xếp (sort) dữ liệu.
- Đóng gói và triển khai mã nguồn Java và sử dụng hệ thống JPMS (Java Platform Module System)
- Định nghĩa module và các phụ thuộc của nó, phơi bày các nội dung module bao gồm "phản chiếu" (reflection). Định nghĩa các dịch vụ (services) Trình tạo (producer) và Trình tiêu dùng (consumer).
- Quản lý việc thực thi mã nguồn đồng thời (concurrent)
- Tạo thread worker sử dụng Runnable và Callable, quản lý vòng đời thread, bao gồm tự động cung cấp Executor services khác nhau và concurrent API.
- Phát triển mã nguồn thread safe (thead mà khi chạy đa luồng vẫn chạy đúng), sử dụng các cơ chế khóa khác nhau và các API xử lý việc thao tác đồng thời.
- Xử lý Java collection một cách đồng thời, sử dụng stream song song.
- Sử dụng API Java I/O
- Đọc từ console và ghi ra console, và dữ liệu tập tin sử dụng Streams I/O
- Tuần tự và hủy tuần tự đối tượng Java
- Tạo, duyệt, đọc và ghi các đối tượng Path và các thuộc tính của chúng sử dụng API java.nio.file
- Truy cập cơ sở dữ liệu sử dụng JDBC
- Tạo kết nối, tạo và thực hiện các câu lệnh cơ bản (basic), prepared, calleable, xử lý kết quả truy vấn và kiểm soát giao dịch (transaction) sử dụng JDBC API.
- Triển khai việc bản địa hóa
- Triển khai việc bản địa hóa sử dụng locales, resource bundle, xử lý và định dạng message, ngày, giờ và các con số, bao gồm các giá trị tiền tệ và phần trăm.
- Các giả định về nội dung bài thi
- Phần mã nguồn thiếu các câu lệnh khai báo package và import. Nếu mã nguồn minh họa không chứa câu lệnh package hoặc import, và câu hỏi không tường minh ám chỉ những câu lệnh bị thiếu, và giả định rằng tất cả mã nguồn minh họa trong cùng một package hoặc có các câu lệnh import sẵn có để hỗ trợ chúng.
- Không có tên đường dẫn tệp hoặc thư mục cho các lớp: Nếu một câu hỏi không nêu tên tệp hoặc vị trí thư mục của các lớp, thì hãy giả sử một trong các cách sau, tùy theo cách nào sẽ cho phép mã biên dịch và chạy:
- Tất cả các lớp nằm trong một tệp
- Mỗi lớp được chứa trong một tệp riêng biệt và tất cả các tệp nằm trong một thư mục
- Ngắt dòng ngoài ý muốn: Mã mẫu có thể có ngắt dòng ngoài ý muốn. Nếu bạn thấy một dòng mã trông giống như nó đã được ngắt dòng và điều này tạo ra một tình huống trong đó dòng mã đó có ý nghĩa quan trọng (ví dụ: một chuỗi ký tự Chuỗi được trích dẫn đã được bao bọc), hãy giả sử rằng dòng mã đó là phần mở rộng của cùng một dòng và dòng không chứa ký tự xuống dòng cứng có thể gây ra lỗi biên dịch.
- Đoạn mã: Đoạn mã là một phần nhỏ của mã nguồn được trình bày mà không có ngữ cảnh của nó. Giả sử rằng tất cả các mã hỗ trợ cần thiết đều tồn tại và môi trường hỗ trợ hỗ trợ đầy đủ việc biên dịch và thực thi chính xác mã được hiển thị và môi trường bị bỏ qua của nó.
- Nhận xét mang tính mô tả: Lấy nhận xét mang tính mô tả, chẳng hạn như "setter và getters go here" theo mệnh giá. Giả sử rằng mã chính xác tồn tại, biên dịch và chạy thành công để tạo hiệu ứng được mô tả.
- Các thí sinh của bài thi cũng được kỳ vọng sẽ
- Hiểu cơ bản về Java logging API
- Sử dụng các annotation @Override, @Deprecated, @SuppressWarnings, Functional interface và SafeVarages
- Sử dụng generic, bao gồm các ký tự đại diện
Bản gốc bằng tiếng Anh tại https://education.oracle.com/java-se-17-developer/pexam_1Z0-829