Đề thi, bài tập trắc nghiệm online JavaĐề 1 – Bài tập, đề thi trắc nghiệm online Java Đăng vào 2 Tháng 5, 2026 bởi admin Đề 1 – Bài tập, đề thi trắc nghiệm online Java Đề 1 – Bài tập, đề thi trắc nghiệm online Java Số câu25Quiz ID16485 Làm bài Câu 1 1. Làm thế nào để tạo một luồng (thread) trong Java? A A. Chỉ bằng cách kế thừa lớp `Thread`. B B. Chỉ bằng cách implements interface `Runnable`. C C. Bằng cách kế thừa lớp `Thread` hoặc implements interface `Runnable`. D D. Không thể tạo luồng trong Java. Câu 2 2. Trong Java, stream API được sử dụng để làm gì? A A. Để tạo ra các đối tượng đồ họa. B B. Để xử lý dữ liệu theo kiểu khai báo (declarative) và song song (parallel) trên các collection. C C. Để quản lý bộ nhớ. D D. Để tăng tốc độ biên dịch. Câu 3 3. Trong Java, nguyên tắc SOLID là gì? A A. Một tập hợp các quy tắc đặt tên biến. B B. Một tập hợp các nguyên tắc thiết kế hướng đối tượng giúp tạo ra mã nguồn dễ bảo trì, mở rộng và tái sử dụng. C C. Một tập hợp các quy tắc định dạng mã nguồn. D D. Một tập hợp các quy tắc quản lý bộ nhớ. Câu 4 4. Trong Java, thread pool được sử dụng để làm gì? A A. Để tạo ra các đối tượng đồ họa. B B. Để quản lý và tái sử dụng các luồng, giúp giảm chi phí tạo và hủy luồng. C C. Để tăng tốc độ biên dịch. D D. Để quản lý bộ nhớ. Câu 5 5. Đâu là điểm khác biệt giữa `ArrayList` và `LinkedList` trong Java? A A. `ArrayList` sử dụng mảng động, trong khi `LinkedList` sử dụng danh sách liên kết đôi. B B. `ArrayList` cho phép truy cập ngẫu nhiên nhanh hơn, trong khi `LinkedList` cho phép thêm/xóa phần tử ở giữa nhanh hơn. C C. `ArrayList` an toàn luồng, trong khi `LinkedList` thì không. D D. Cả A và B đều đúng. Câu 6 6. Trong Java, Reflection là gì? A A. Một kỹ thuật để tạo ra các bản sao của đối tượng. B B. Một API cho phép kiểm tra và sửa đổi các lớp, interface, field và method tại runtime. C C. Một kỹ thuật để tăng tốc độ thực thi của chương trình. D D. Một kỹ thuật để quản lý bộ nhớ. Câu 7 7. Trong Java, mục đích của Design Pattern là gì? A A. Để tăng tốc độ thực thi của chương trình. B B. Để cung cấp các giải pháp đã được kiểm chứng cho các vấn đề thiết kế phần mềm thường gặp. C C. Để tạo ra các đối tượng đồ họa. D D. Để quản lý bộ nhớ. Câu 8 8. Trong Java, Reactive Programming là gì? A A. Một phong cách lập trình tập trung vào việc xử lý các luồng dữ liệu bất đồng bộ và sự thay đổi dữ liệu, cho phép xây dựng các hệ thống phản ứng nhanh nhạy, đàn hồi và có khả năng mở rộng. B B. Một kỹ thuật để tăng tốc độ biên dịch. C C. Một kỹ thuật để quản lý bộ nhớ. D D. Một API để tạo ra các đối tượng đồ họa. Câu 9 9. Đâu là lợi ích chính của việc sử dụng generics trong Java? A A. Giảm kích thước của file bytecode. B B. Tăng tốc độ biên dịch. C C. Cung cấp type safety (kiểm tra kiểu) tại thời điểm biên dịch và loại bỏ nhu cầu ép kiểu (casting). D D. Cho phép sử dụng nhiều luồng hơn. Câu 10 10. Đâu là sự khác biệt chính giữa `==` và phương thức `.equals()` trong Java khi so sánh các đối tượng? A A. `==` so sánh giá trị của các đối tượng, còn `.equals()` so sánh tham chiếu của chúng. B B. `==` so sánh tham chiếu của các đối tượng, còn `.equals()` so sánh nội dung của chúng (nếu phương thức này được ghi đè). C C. Cả `==` và `.equals()` đều so sánh tham chiếu của các đối tượng. D D. Cả `==` và `.equals()` đều so sánh giá trị của các đối tượng. Câu 11 11. Trong Java, Microservices là gì? A A. Một kiến trúc phần mềm trong đó ứng dụng được cấu trúc như một tập hợp các dịch vụ nhỏ, độc lập, giao tiếp với nhau qua mạng. B B. Một kỹ thuật để tăng tốc độ biên dịch. C C. Một kỹ thuật để quản lý bộ nhớ. D D. Một API để tạo ra các đối tượng đồ họa. Câu 12 12. Trong Java, serialization là gì? A A. Quá trình chuyển đổi một đối tượng thành một chuỗi byte để có thể lưu trữ hoặc truyền tải. B B. Quá trình chuyển đổi một chuỗi byte thành một đối tượng. C C. Quá trình mã hóa dữ liệu. D D. Quá trình giải mã dữ liệu. Câu 13 13. Lệnh nào sau đây dùng để biên dịch một file Java có tên `MyClass.java`? A A. java MyClass.java B B. javac MyClass C C. javac MyClass.java D D. java MyClass Câu 14 14. Phương thức nào sau đây được gọi tự động khi một đối tượng được tạo ra trong Java? A A. finalize() B B. toString() C C. Constructor D D. main() Câu 15 15. Trong Java, interface khác với abstract class như thế nào? A A. Interface có thể chứa các phương thức đã được triển khai, còn abstract class thì không. B B. Một lớp có thể implements nhiều interface, nhưng chỉ có thể kế thừa từ một abstract class. C C. Abstract class không thể chứa các biến thành viên, còn interface thì có thể. D D. Interface có thể có constructor, còn abstract class thì không. Câu 16 16. Trong Java, JPA (Java Persistence API) là gì? A A. Một API để tạo ra các đối tượng đồ họa. B B. Một API đặc tả cách quản lý, truy cập và lưu trữ dữ liệu giữa các đối tượng Java và cơ sở dữ liệu quan hệ. C C. Một API để tăng tốc độ biên dịch. D D. Một API để quản lý bộ nhớ. Câu 17 17. Trong Java, annotation được sử dụng để làm gì? A A. Để tạo ra các đối tượng đồ họa. B B. Để cung cấp metadata (dữ liệu về dữ liệu) cho trình biên dịch hoặc runtime environment. C C. Để định nghĩa các hằng số. D D. Để quản lý bộ nhớ. Câu 18 18. Trong Java, từ khóa `static` có ý nghĩa gì? A A. Biến hoặc phương thức chỉ có thể được truy cập từ bên trong lớp mà nó được khai báo. B B. Biến hoặc phương thức thuộc về lớp chứ không phải là một thể hiện cụ thể của lớp đó. C C. Biến hoặc phương thức không thể bị thay đổi giá trị sau khi được khởi tạo. D D. Biến hoặc phương thức chỉ có thể được truy cập bởi các lớp con. Câu 19 19. Trong Java, đặc điểm nào sau đây thể hiện tính đóng gói (encapsulation)? A A. Cho phép các đối tượng thuộc các lớp khác nhau sử dụng các phương thức của nhau. B B. Che giấu thông tin và hành vi bên trong của một đối tượng, chỉ cho phép truy cập thông qua các phương thức công khai. C C. Khả năng một lớp kế thừa các thuộc tính và phương thức từ một lớp khác. D D. Khả năng một đối tượng có thể có nhiều hình thức khác nhau. Câu 20 20. Trong Java, Dependency Injection (DI) là gì? A A. Một kỹ thuật để tạo ra các bản sao của đối tượng. B B. Một design pattern cho phép loại bỏ sự phụ thuộc cứng nhắc giữa các thành phần bằng cách cung cấp các dependency (phụ thuộc) cho một đối tượng thay vì để đối tượng tự tạo ra chúng. C C. Một kỹ thuật để tăng tốc độ thực thi của chương trình. D D. Một kỹ thuật để quản lý bộ nhớ. Câu 21 21. Trong Java, mục đích của từ khóa `synchronized` là gì? A A. Để tạo ra một bản sao của một đối tượng. B B. Để đảm bảo rằng chỉ có một luồng có thể truy cập vào một đoạn mã hoặc một đối tượng tại một thời điểm. C C. Để tăng tốc độ thực thi của chương trình. D D. Để định nghĩa một hằng số. Câu 22 22. Trong Java, exception (ngoại lệ) được sử dụng để làm gì? A A. Để tăng tốc độ thực thi của chương trình. B B. Để xử lý các lỗi và tình huống bất thường xảy ra trong quá trình thực thi chương trình. C C. Để định nghĩa các lớp và đối tượng. D D. Để tạo giao diện người dùng đồ họa. Câu 23 23. Trong Java, final class là gì? A A. Một lớp không thể có bất kỳ phương thức nào. B B. Một lớp không thể có bất kỳ thuộc tính nào. C C. Một lớp không thể được kế thừa bởi bất kỳ lớp nào khác. D D. Một lớp không thể được khởi tạo. Câu 24 24. Trong Java, thuật ngữ 'đa hình' (polymorphism) có nghĩa là gì? A A. Một lớp có thể có nhiều thuộc tính. B B. Một phương thức có thể có nhiều tham số. C C. Một đối tượng có thể có nhiều hình thức khác nhau. D D. Một chương trình có thể chạy trên nhiều hệ điều hành. Câu 25 25. Trong Java, mục đích chính của garbage collection là gì? A A. Tối ưu hóa hiệu suất của CPU. B B. Giải phóng bộ nhớ không còn được sử dụng bởi chương trình. C C. Ngăn chặn các cuộc tấn công bảo mật. D D. Quản lý các kết nối mạng. Đề 5 – Bài tập, đề thi trắc nghiệm online Đau Bụng Ở Trẻ Em Đề 2 – Bài tập, đề thi trắc nghiệm online Lý Luận Chung Về Nhà Nước Và Pháp Luật