BỘ CÂU HỎI ÔN TẬP
LẬP TRÌNH
HƯỚNG ĐỐI TƯỢNG
JAVA
400 CÂU / 4 LỰA CHỌN / 1 ĐÁP ÁN ĐÚNG
Phạm vi: C1-C7 và C9
Bỏ qua C8 theo yêu cầu. Đáp án đặt cuối tài liệu.
Kết hợp câu hỏi lý thuyết, đọc mã, xác định kết quả và phát hiện lỗi. Biên soạn theo các bài giảng trong thư
mục Drive do người học cung cấp.
Quy ước: sử dụng Java SE 8 cho cú pháp và hành vi trong câu hỏi, phù hợp với nội dung trọng tâm của slide. Các câu lịch sử
dùng mốc phiên bản được nêu trong bài giảng.
Tài liệu tự luyện - không phải đề thi chính thức.
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG JAVA 400 CÂU TRẮC NGHIỆM
C1-C7 và C9 | Mỗi câu chọn một đáp án 2
Hướng dẫn làm bài
Chọn đúng một phương án A, B, C hoặc D cho mỗi câu. Các câu được đánh số liên tục từ 1 đến 400 và
chia theo chương để thuận tiện ôn tập.
Với câu đọc mã, giả sử đã import các lớp thư viện cần thiết, các đoạn mã nằm trong ngữ cảnh hợp lệ, và
những lớp minh họa như Employee/Manager có constructor phù hợp, trừ khi chính câu hỏi đang kiểm tra lỗi
khai báo. Mỗi câu là một tình huống độc lập.
Chỉ số của mảng và danh sách bắt đầu từ 0. Kết quả không phụ thuộc ngẫu nhiên, locale hoặc thứ tự duyệt
không được bảo đảm sẽ không được dùng làm đáp án xác định; nếu cần, câu hỏi nêu điều kiện cụ thể.
Phân bổ câu hỏi
C1 - Tổng quan về Java: 15 câu, từ câu 1 đến 15.
C2 - Môi trường lập trình Java: 15 câu, từ câu 16 đến 30.
C3 - Cấu trúc lập trình cơ bản: 80 câu, từ câu 31 đến 110.
C4 - Đối tượng và lớp: 60 câu, từ câu 111 đến 170.
C5 - Kế thừa: 60 câu, từ câu 171 đến 230.
C6 - Interface, lambda và inner class: 60 câu, từ câu 231 đến 290.
C7 - Ngoại lệ, assertions và logging: 50 câu, từ câu 291 đến 340.
C9 - Collections: 60 câu, từ câu 341 đến 400.
Gợi ý tự đánh giá: đúng mỗi câu tính 1 điểm; điểm thang 10 = số câu đúng ÷ 40. Có thể làm riêng từng
chương rồi đối chiếu phần đáp án cuối file.
Lưu ý về nội dung
Một số diễn đạt giản lược trong slide được chuẩn hóa theo hành vi Java: đối số luôn truyền theo giá trị; shallow clone tạo đối
tượng mới nhưng có thể dùng chung đối tượng con; hashCode không bảo đảm duy nhất hoặc là địa chỉ bộ nhớ.
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG JAVA 400 CÂU TRẮC NGHIỆM
C1-C7 và C9 | Mỗi câu chọn một đáp án 3
C1. Tổng quan về Java
15 câu | Câu 1-15 | Chọn một đáp án cho mỗi câu.
Câu 1. Java được giới thiệu trong bài giảng như một nền tảng có đặc điểm nào?
A. Môi trường thực thi và thư viện phong phú
B. Chỉ hỗ trợ tính toán số nguyên
C. Không có thư viện chuẩn
D. Chỉ dùng để viết mã máy
Câu 2. Đặc tính Object-Oriented nhấn mạnh điều gì?
A. Chỉ thứ tự các lệnh nhảy
B. Địa chỉ vật lý của bộ nhớ
C. Đối tượng và giao diện tương tác với đối tượng
D. Chỉ các hàm toàn cục
Câu 3. Tính Architecture-Neutral chủ yếu gắn với yếu tố nào?
A. Bytecode chạy trên hệ thống có runtime phù hợp
B. Chương trình không cần bộ nhớ
C. Mọi CPU dùng cùng tập lệnh máy
D. Mã nguồn không cần biên dịch
Câu 4. Bytecode Java thường được thực thi bởi thành phần nào?
A. Bộ tiền xử lý C
B. JVM
C. Trình soạn thảo văn bản
D. Trình quản lý gói của IDE
Câu 5. Tính Portable hướng đến khả năng nào?
A. Bỏ qua tất cả lỗi cú pháp
B. Chạy mà không cần hệ điều hành hoặc runtime
C. Chuyển chương trình giữa các nền tảng phù hợp
D. Tự chuyển mọi dữ liệu thành số nguyên
Câu 6. Tính Distributed trong bài giảng gắn với thư viện nào?
A. Thư viện chỉ để vẽ hình tròn
B. Thư viện chỉ để đổi font chữ
C. Thư viện hỗ trợ giao thức TCP/IP
D. Thư viện xử lý riêng toán tử ++
Câu 7. Tính Robust được tăng cường bằng cách nào?
A. Chỉ kiểm tra tên file
B. Cho phép truy cập tùy ý địa chỉ nhớ
C. Bỏ mọi kiểm tra kiểu
D. Kiểm tra lỗi khi biên dịch và khi chạy
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG JAVA 400 CÂU TRẮC NGHIỆM
C1-C7 và C9 | Mỗi câu chọn một đáp án 4
Câu 8. Biên dịch bytecode thành mã máy lúc chạy giúp hỗ trợ đặc tính nào?
A. Chỉ Encapsulation
B. High-Performance
C. Chỉ Package Naming
D. Chỉ Documentation
Câu 9. Multithreaded đề cập đến khả năng nào?
A. Thực hiện nhiều luồng trong một chương trình
B. Mỗi lớp chỉ tạo được một đối tượng
C. Mỗi biểu thức chỉ có một toán hạng
D. Mỗi chương trình chỉ có một phương thức
Câu 10. Tính Dynamic gắn với khả năng nào?
A. Thay đổi tùy ý cú pháp Java khi chạy
B. Biến mọi field thành hằng số
C. Nạp và sử dụng lớp khi chương trình đang chạy
D. Bắt mọi biến đổi kiểu thành công
Câu 11. Theo bảng lịch sử trong bài giảng, Java 1.0 xuất hiện năm nào?
A. 2014
B. 1991
C. 1996
D. 2004
Câu 12. Nhóm tính năng nào được đưa vào Java 5.0?
A. Lambda và module
B. Switch với String và module
C. Chỉ inner class và strictfp
D. Generics, autoboxing và vòng lặp for-each
Câu 13. Theo bảng lịch sử, phiên bản nào hỗ trợ switch với String?
A. Java 1.0
B. Java 5.0
C. Java 7
D. Java 1.2
Câu 14. Nhóm tính năng nào gắn với Java 8 trong bài giảng?
A. Module và chỉ thị requires
B. Lambda và default method của interface
C. Lần đầu có lớp và đối tượng
D. Lần đầu có mảng số nguyên
Câu 15. Theo bảng lịch sử, hệ thống module xuất hiện ở phiên bản nào?
A. Java 9
B. Java 7
C. Java 1.1
D. Java 5.0
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG JAVA 400 CÂU TRẮC NGHIỆM
C1-C7 và C9 | Mỗi câu chọn một đáp án 5
C2. Môi trường lập trình Java
15 câu | Câu 16-30 | Chọn một đáp án cho mỗi câu.
Câu 16. JDK phục vụ chủ yếu đối tượng nào?
A. Người phát triển chương trình Java
B. Người chỉ xem ảnh
C. Thiết bị chỉ lưu trữ dữ liệu
D. Người chỉ đọc PDF
Câu 17. Theo cách phân biệt trong bài giảng, JRE dùng chủ yếu để làm gì?
A. Chạy chương trình Java
B. Biên dịch mã nguồn với javac
C. Sinh tài liệu bằng javadoc
D. Thiết kế giao diện của IDE
Câu 18. Java SE là viết tắt của tên nào?
A. Java Static Engine
B. Java Secure Exception
C. Java Source Editor
D. Java Standard Edition
Câu 19. Java EE được mô tả phù hợp với loại ứng dụng nào?
A. Chỉ chương trình cho vi điều khiển nhỏ
B. Ứng dụng máy chủ phức tạp
C. Chỉ công cụ đổi tên file
D. Chỉ chương trình tính tổng hai số
Câu 20. Java ME trong bảng thuật ngữ hướng đến môi trường nào?
A. Thiết bị nhỏ
B. Chỉ máy trạm đồ họa
C. Chỉ máy chủ doanh nghiệp lớn
D. Chỉ máy chủ cơ sở dữ liệu
Câu 21. OpenJDK được giới thiệu là gì?
A. Một lệnh thay thế println
B. Một kiểu dữ liệu nguyên thủy
C. Bản triển khai Java SE miễn phí và mã nguồn mở
D. Một lớp con của String
Câu 22. Lệnh nào biên dịch file Welcome.java?
A. javadoc Welcome.class
B. javac Welcome.java
C. jar Welcome.java
D. java Welcome.java.class