Đề thi, bài tập trắc nghiệm online Lập trình javaĐề 4 – Bài tập, đề thi trắc nghiệm online Lập trình java Đăng vào 2 Tháng 5, 2026 bởi admin Đề 4 – Bài tập, đề thi trắc nghiệm online Lập trình java Đề 4 – Bài tập, đề thi trắc nghiệm online Lập trình java Số câu30Quiz ID10859 Làm bài Câu 1 1. Trong Java, từ khóa nào được sử dụng để tạo một thể hiện (instance) của một lớp? A A. class B B. new C C. instanceof D D. object Câu 2 2. Phương thức `main()` trong Java có kiểu trả về là gì? A A. int B B. String C C. void D D. main Câu 3 3. Đâu là phát biểu **KHÔNG ĐÚNG** về tính chất 'đóng gói' (encapsulation) trong lập trình hướng đối tượng Java? A A. Đóng gói giúp che giấu thông tin và bảo vệ dữ liệu của đối tượng. B B. Đóng gói cho phép kiểm soát việc truy cập và sửa đổi dữ liệu của đối tượng thông qua các phương thức. C C. Đóng gói làm tăng tính phức tạp của việc sử dụng đối tượng từ bên ngoài. D D. Đóng gói là một trong bốn trụ cột chính của lập trình hướng đối tượng. Câu 4 4. Kiểu dữ liệu nào sau đây **KHÔNG** phải là kiểu dữ liệu nguyên thủy (primitive type) trong Java? A A. int B B. boolean C C. String D D. char Câu 5 5. Trong Java, từ khóa nào được sử dụng để khai báo một biến hằng số (constant)? A A. static B B. const C C. final D D. immutable Câu 6 6. Phương thức `equals()` và toán tử `==` trong Java khác nhau như thế nào khi so sánh các đối tượng? A A. `equals()` so sánh tham chiếu đối tượng, `==` so sánh giá trị thuộc tính. B B. `equals()` so sánh giá trị thuộc tính, `==` so sánh tham chiếu đối tượng. C C. Cả `equals()` và `==` đều so sánh tham chiếu đối tượng. D D. Cả `equals()` và `==` đều so sánh giá trị thuộc tính. Câu 7 7. Lớp `Scanner` trong Java thường được sử dụng để làm gì? A A. Tạo giao diện đồ họa người dùng. B B. Đọc dữ liệu đầu vào từ người dùng. C C. Ghi dữ liệu ra tập tin. D D. Quản lý bộ nhớ. Câu 8 8. Trong lập trình hướng đối tượng, 'tính đa hình' (polymorphism) thể hiện điều gì? A A. Khả năng một lớp kế thừa từ nhiều lớp khác. B B. Khả năng một đối tượng có nhiều thuộc tính. C C. Khả năng một đối tượng thuộc nhiều lớp khác nhau. D D. Khả năng một đối tượng thể hiện các hành vi khác nhau trong các tình huống khác nhau. Câu 9 9. Mục đích chính của việc sử dụng giao diện (interface) trong Java là gì? A A. Tăng hiệu suất thực thi chương trình. B B. Hiện thực hóa tính đa kế thừa. C C. Định nghĩa một hợp đồng mà các lớp phải tuân theo. D D. Thay thế cho lớp trừu tượng. Câu 10 10. Ngoại lệ (exception) `NullPointerException` xảy ra khi nào? A A. Truy cập vào một phần tử mảng vượt quá kích thước mảng. B B. Thực hiện phép chia cho 0. C C. Cố gắng truy cập một biến đối tượng có giá trị `null`. D D. Ép kiểu dữ liệu không hợp lệ. Câu 11 11. Trong Java Collections Framework, `ArrayList` và `LinkedList` khác nhau chủ yếu ở điểm nào? A A. `ArrayList` nhanh hơn trong việc thêm/xóa phần tử ở đầu danh sách, `LinkedList` nhanh hơn trong việc truy cập ngẫu nhiên. B B. `ArrayList` dựa trên mảng động, `LinkedList` dựa trên danh sách liên kết đôi. C C. `ArrayList` hỗ trợ đa luồng tốt hơn `LinkedList`. D D. `ArrayList` chỉ lưu trữ được kiểu dữ liệu nguyên thủy, `LinkedList` lưu trữ được mọi kiểu dữ liệu. Câu 12 12. Phương thức `toString()` được sử dụng để làm gì trong Java? A A. So sánh hai đối tượng. B B. Chuyển đổi một đối tượng thành chuỗi ký tự. C C. Tính toán mã băm của đối tượng. D D. Giải phóng bộ nhớ của đối tượng. Câu 13 13. Vòng lặp `for-each` (enhanced for loop) trong Java chủ yếu được sử dụng để làm gì? A A. Lặp qua các phần tử của một mảng hoặc collection. B B. Thực hiện lặp vô hạn. C C. Lặp qua các số nguyên trong một khoảng xác định. D D. Thay thế cho vòng lặp `while`. Câu 14 14. Trong Java, 'garbage collection' (thu gom rác) là gì? A A. Quá trình biên dịch mã nguồn Java thành bytecode. B B. Cơ chế tự động quản lý bộ nhớ, giải phóng bộ nhớ không còn được sử dụng. C C. Phương pháp tối ưu hóa hiệu suất chương trình Java. D D. Thư viện hỗ trợ xử lý lỗi và ngoại lệ. Câu 15 15. Đâu là lợi ích chính của việc sử dụng lập trình đa luồng (multithreading) trong Java? A A. Giảm mức sử dụng bộ nhớ. B B. Tăng độ phức tạp của mã nguồn. C C. Cải thiện hiệu suất và khả năng phản hồi của ứng dụng. D D. Đơn giản hóa việc quản lý tài nguyên hệ thống. Câu 16 16. Annotation `@Override` trong Java được sử dụng để làm gì? A A. Khai báo một biến static. B B. Chỉ định rằng một phương thức ghi đè một phương thức từ lớp cha. C C. Tạo một đối tượng singleton. D D. Đánh dấu một phương thức là trừu tượng (abstract). Câu 17 17. Trong Java, 'constructor' (hàm tạo) có vai trò gì? A A. Xác định kiểu dữ liệu của một lớp. B B. Khởi tạo các thuộc tính của đối tượng khi đối tượng được tạo ra. C C. Thực hiện các phép toán số học. D D. Giải phóng bộ nhớ khi đối tượng không còn sử dụng. Câu 18 18. Phương thức `parseInt()` của lớp `Integer` trong Java dùng để làm gì? A A. Chuyển đổi một số nguyên thành chuỗi. B B. Chuyển đổi một chuỗi biểu diễn số nguyên thành kiểu `int`. C C. Kiểm tra xem một chuỗi có phải là số nguyên hay không. D D. Định dạng một số nguyên theo một khuôn mẫu nhất định. Câu 19 19. Trong Java, từ khóa `static` có ý nghĩa gì khi được sử dụng cho một biến thành viên của lớp? A A. Biến chỉ có thể truy cập từ bên trong lớp chứa nó. B B. Biến được tạo ra mỗi khi một đối tượng của lớp được khởi tạo. C C. Biến thuộc về lớp chứ không phải đối tượng cụ thể của lớp. D D. Biến không thể thay đổi giá trị sau khi khởi tạo. Câu 20 20. Giả sử bạn có một lớp `Dog` kế thừa từ lớp `Animal`. Để gọi constructor của lớp `Animal` từ constructor của lớp `Dog`, bạn sử dụng từ khóa nào? A A. this() B B. super() C C. base() D D. parent() Câu 21 21. Trong Java, 'boxing' và 'unboxing' đề cập đến quá trình chuyển đổi giữa kiểu dữ liệu nào? A A. Giữa kiểu dữ liệu nguyên thủy và kiểu tham chiếu. B B. Giữa các kiểu dữ liệu nguyên thủy khác nhau. C C. Giữa các kiểu tham chiếu khác nhau. D D. Giữa kiểu dữ liệu số và kiểu dữ liệu chuỗi. Câu 22 22. Phương thức `finalize()` trong Java được sử dụng để làm gì (nhưng **KHÔNG ĐƯỢC KHUYẾN KHÍCH** sử dụng)? A A. Khởi tạo đối tượng. B B. Giải phóng tài nguyên trước khi đối tượng bị thu gom bởi garbage collector. C C. So sánh hai đối tượng. D D. In thông tin đối tượng ra console. Câu 23 23. Iterator trong Java Collections Framework được sử dụng để làm gì? A A. Sắp xếp các phần tử trong collection. B B. Thêm phần tử vào collection. C C. Duyệt qua các phần tử của collection một cách tuần tự. D D. Tìm kiếm phần tử trong collection. Câu 24 24. Trong Java, 'lambda expression' (biểu thức lambda) là gì? A A. Một kiểu dữ liệu mới được thêm vào Java. B B. Một cách viết ngắn gọn cho anonymous inner class (lớp nội danh vô danh) chỉ có một phương thức trừu tượng. C C. Một cơ chế xử lý ngoại lệ mới. D D. Một cách tạo đối tượng đa luồng. Câu 25 25. Phương thức `sleep()` của lớp `Thread` được sử dụng để làm gì? A A. Kết thúc một luồng (thread). B B. Tạm dừng thực thi luồng hiện tại trong một khoảng thời gian nhất định. C C. Khởi động một luồng mới. D D. Đồng bộ hóa các luồng. Câu 26 26. Trong Java, Serialization là quá trình gì? A A. Chuyển đổi mã nguồn Java thành bytecode. B B. Chuyển đổi trạng thái của một đối tượng thành một chuỗi byte để lưu trữ hoặc truyền tải. C C. Quá trình biên dịch và liên kết các lớp Java. D D. Tối ưu hóa hiệu suất của chương trình Java. Câu 27 27. Javadoc là gì? A A. Một trình biên dịch Java. B B. Một công cụ để tạo tài liệu API tự động từ mã nguồn Java. C C. Một thư viện hỗ trợ kiểm thử đơn vị trong Java. D D. Một môi trường phát triển tích hợp (IDE) cho Java. Câu 28 28. Trong mô hình MVC (Model-View-Controller), Controller có vai trò gì? A A. Hiển thị dữ liệu cho người dùng. B B. Quản lý dữ liệu và logic nghiệp vụ. C C. Xử lý tương tác của người dùng và cập nhật Model và View. D D. Lưu trữ dữ liệu vào cơ sở dữ liệu. Câu 29 29. Giả sử bạn có một `HashSet` chứa các đối tượng tùy chỉnh. Điều kiện tiên quyết để `HashSet` hoạt động đúng cách với các đối tượng này là gì? A A. Các đối tượng phải implement interface `Comparable`. B B. Các đối tượng phải có phương thức `clone()` được ghi đè. C C. Các đối tượng phải ghi đè phương thức `equals()` và `hashCode()` một cách nhất quán. D D. Các đối tượng phải kế thừa từ lớp `Object`. Câu 30 30. Ứng dụng nào sau đây là một ví dụ về việc sử dụng Design Pattern 'Singleton' trong lập trình Java? A A. Một lớp tiện ích `Math` chứa các phương thức toán học static. B B. Một lớp quản lý cấu hình ứng dụng, đảm bảo chỉ có một thể hiện duy nhất trong suốt quá trình chạy. C C. Một lớp `Factory` để tạo ra các đối tượng khác nhau dựa trên tham số đầu vào. D D. Một lớp `Observer` để thông báo sự kiện cho nhiều đối tượng quan sát. Đề 3 – Bài tập, đề thi trắc nghiệm online Chi tiết máy Đề 5 – Bài tập, đề thi trắc nghiệm online Ngữ pháp lý thuyết tiếng Anh