Đề thi, bài tập trắc nghiệm online Lập trình javaĐề 9 – 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 Đề 9 – Bài tập, đề thi trắc nghiệm online Lập trình java Đề 9 – Bài tập, đề thi trắc nghiệm online Lập trình java Số câu30Quiz ID10864 Làm bài Câu 1 1. Đâu là từ khóa **KHÔNG PHẢI** là kiểu dữ liệu nguyên thủy (primitive data type) trong Java? A A. int B B. boolean C C. String D D. float Câu 2 2. Phương thức `main()` trong Java có vai trò gì? A A. Định nghĩa lớp (class). B B. Điểm bắt đầu thực thi của chương trình. C C. Khai báo biến toàn cục. D D. Xử lý ngoại lệ. Câu 3 3. Trong lập trình hướng đối tượng Java, tính đóng gói (encapsulation) thể hiện qua việc: A A. Cho phép một lớp kế thừa thuộc tính và phương thức từ lớp khác. B B. Che giấu thông tin và hành vi bên trong đối tượng, chỉ cho phép truy cập thông qua giao diện công khai. C C. Khả năng một đối tượng thuộc nhiều lớp khác nhau. D D. Tạo ra các đối tượng có cùng kiểu dữ liệu. Câu 4 4. Từ khóa nào sau đây được sử dụng để tạo một đối tượng (object) trong Java? A A. class B B. interface C C. new D D. extends Câu 5 5. Phương thức `equals()` và toán tử `==` khác nhau như thế nào khi so sánh các đối tượng String trong Java? A A. `equals()` so sánh tham chiếu đối tượng, `==` so sánh giá trị chuỗi. B B. `equals()` so sánh giá trị chuỗi, `==` so sánh tham chiếu đối tượng. C C. Cả hai đều so sánh tham chiếu đối tượng. D D. Cả hai đều so sánh giá trị chuỗi. Câu 6 6. Trong Java, `ArrayList` và `LinkedList` khác nhau chủ yếu ở khía cạnh nào? A A. Kích thước tối đa có thể chứa. B B. Cấu trúc dữ liệu bên trong và hiệu suất truy cập/thêm/xóa phần tử. C C. Khả năng lưu trữ các kiểu dữ liệu khác nhau. D D. Tính năng tự động sắp xếp các phần tử. Câu 7 7. Exception (ngoại lệ) trong Java được sử dụng để làm gì? A A. Tối ưu hóa hiệu suất chương trình. B B. Quản lý bộ nhớ tự động. C C. Xử lý các tình huống lỗi hoặc bất thường xảy ra trong quá trình thực thi. D D. Định nghĩa các lớp và đối tượng. Câu 8 8. Đâu là cách khai báo một hằng số (constant) trong Java? A A. static variable int CONSTANT_NAME = value; B B. final int CONSTANT_NAME = value; C C. public int CONSTANT_NAME = value; D D. const int CONSTANT_NAME = value; Câu 9 9. Interface (giao diện) trong Java khác với Abstract class (lớp trừu tượng) ở điểm nào quan trọng? A A. Interface có thể chứa các phương thức có thân (method body), Abstract class thì không. B B. Một lớp có thể kế thừa nhiều Interface, nhưng chỉ có thể kế thừa một Abstract class. C C. Interface không thể chứa biến thành viên, Abstract class thì có thể. D D. Abstract class được sử dụng để tạo đối tượng, Interface thì không. Câu 10 10. Vòng lặp `for-each` (enhanced for loop) trong Java thường được sử dụng để làm gì? A A. Lặp vô hạn. B B. Lặp qua các phần tử của một mảng hoặc collection. C C. Thực hiện các phép tính toán phức tạp. D D. Định nghĩa phương thức. Câu 11 11. Phương thức `toString()` trong Java có mục đích chính là gì? A A. So sánh hai đối tượng. B B. Chuyển đổi một đối tượng thành chuỗi (String) để hiển thị hoặc ghi log. C C. Khởi tạo một đối tượng mới. D D. Giải phóng bộ nhớ của đối tượng. Câu 12 12. Đâu là lợi ích chính của việc sử dụng đa luồng (multithreading) trong Java? A A. Giảm mức sử dụng bộ nhớ. B B. Tăng tốc độ biên dịch mã nguồn. C C. Cải thiện hiệu suất chương trình bằng cách thực hiện các tác vụ song song. D D. Đơn giản hóa cấu trúc code. Câu 13 13. Trong Java, từ khóa `static` được sử dụng để làm gì? A A. Khai báo lớp trừu tượng. B B. Tạo ra các đối tượng không thể thay đổi. C C. Khai báo thành viên lớp (class members) thuộc về lớp chứ không phải đối tượng cụ thể. D D. Định nghĩa giao diện. Câu 14 14. Phương thức `finalize()` trong Java được gọi khi nào? A A. Khi một đối tượng được tạo ra. B B. Khi một đối tượng không còn được tham chiếu đến và chuẩn bị được thu gom bởi Garbage Collector. C C. Khi chương trình Java kết thúc. D D. Khi một ngoại lệ (exception) được ném ra. Câu 15 15. Serialization (Tuần tự hóa) trong Java là gì? A A. Quá trình chuyển đổi mã nguồn Java sang bytecode. B B. Quá trình 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 kiểm tra lỗi cú pháp trong mã nguồn. D D. Quá trình tối ưu hóa mã bytecode. Câu 16 16. Annotation (Chú thích) trong Java được sử dụng để làm gì? A A. Thay thế cho comment (chú thích dòng lệnh). B B. Cung cấp metadata (siêu dữ liệu) về mã nguồn cho trình biên dịch, JVM hoặc các công cụ khác. C C. Tăng tốc độ thực thi chương trình. D D. Mã hóa mã nguồn. Câu 17 17. Đâu là một ví dụ về Design Pattern (Mẫu thiết kế) thuộc nhóm Creational Patterns (Mẫu khởi tạo) trong lập trình hướng đối tượng? A A. Observer B B. Strategy C C. Singleton D D. Command Câu 18 18. Trong Java, Garbage Collection (Thu gom rác) hoạt động như thế nào? A A. Lập trình viên phải tự giải phóng bộ nhớ đã cấp phát. B B. JVM tự động theo dõi và thu hồi bộ nhớ của các đối tượng không còn được tham chiếu đến. C C. Hệ điều hành quản lý việc thu gom rác. D D. Trình biên dịch tối ưu hóa bộ nhớ để không cần thu gom rác. Câu 19 19. Lambda Expression (Biểu thức Lambda) trong Java 8 được sử dụng chủ yếu để làm gì? A A. Định nghĩa lớp (class). B B. Tạo ra các biến toàn cục. C C. Cung cấp một cách ngắn gọn để biểu diễn functional interface (giao diện hàm). D D. Xử lý ngoại lệ. Câu 20 20. Stream API trong Java 8 cung cấp phương thức `filter()` để làm gì? A A. Sắp xếp các phần tử trong stream. B B. Chuyển đổi các phần tử trong stream sang kiểu dữ liệu khác. C C. Lọc các phần tử trong stream dựa trên một điều kiện cho trước. D D. Tính tổng các phần tử trong stream. Câu 21 21. Giả sử bạn có một lớp `Dog` và lớp `Animal` là lớp cha của `Dog`. Ép kiểu (casting) nào sau đây là **KHÔNG HỢP LỆ** trong Java? A A. `Animal myAnimal = (Animal) new Dog();` B B. `Dog myDog = (Dog) myAnimal;` (với `Animal myAnimal = new Dog();`) C C. `Dog myDog = new Dog(); Animal myAnimal = myDog;` D D. `Dog myDog = (Dog) new Animal();` Câu 22 22. Trong Java, từ khóa `transient` được sử dụng để làm gì khi serialization? A A. Đánh dấu một biến là hằng số (constant). B B. Đánh dấu một biến không nên được serialized (tuần tự hóa). C C. Đánh dấu một biến là static. D D. Đánh dấu một biến là volatile. Câu 23 23. Phương thức `hashCode()` và `equals()` có mối quan hệ như thế nào trong Java? A A. Không có mối quan hệ. B B. Nếu hai đối tượng bằng nhau theo `equals()`, thì `hashCode()` của chúng phải trả về cùng một giá trị. C C. Nếu `hashCode()` của hai đối tượng bằng nhau, thì chúng phải bằng nhau theo `equals()`. D D. `equals()` gọi `hashCode()` để so sánh đối tượng. Câu 24 24. Đâu là cách đúng để tạo một luồng (Thread) trong Java? A A. Kế thừa lớp `Runnable`. B B. Kế thừa lớp `Thread` hoặc implement interface `Runnable`. C C. Implement interface `Callable`. D D. Kế thừa lớp `Object`. Câu 25 25. Từ khóa `synchronized` trong Java được sử dụng để làm gì? A A. Tăng hiệu suất đa luồng. B B. Đảm bảo tính đồng bộ và loại trừ lẫn nhau (mutual exclusion) khi truy cập tài nguyên chung trong môi trường đa luồng. C C. Tạo ra các luồng ưu tiên cao. D D. Giải phóng bộ nhớ của luồng. Câu 26 26. JDBC (Java Database Connectivity) được sử dụng để làm gì? A A. Xây dựng giao diện người dùng đồ họa (GUI). B B. Kết nối và tương tác với cơ sở dữ liệu từ ứng dụng Java. C C. Phát triển ứng dụng web phía máy chủ. D D. Quản lý bộ nhớ trong Java. Câu 27 27. Giả sử bạn có đoạn code sau: `int[] numbers = {1, 2, 3, 4, 5}; System.out.println(numbers[5]);`. Đoạn code này sẽ gây ra lỗi gì khi chạy? A A. Lỗi biên dịch (Compilation error). B B. Lỗi NullPointerException. C C. Lỗi ArrayIndexOutOfBoundsException. D D. Đoạn code chạy thành công và in ra '5'. Câu 28 28. Trong Java, Generic (Kiểu tham số hóa) được sử dụng để làm gì? A A. Tăng tốc độ thực thi chương trình. B B. Cho phép định nghĩa lớp, interface và phương thức có thể làm việc với nhiều kiểu dữ liệu khác nhau một cách type-safe (an toàn kiểu dữ liệu). C C. Giảm mức sử dụng bộ nhớ. D D. Đơn giản hóa cấu trúc code. Câu 29 29. Hãy xem xét đoạn code sau: java public class Example { public static void main(String[] args) { try { int result = 10 / 0; } catch (Exception e) { System.out.println('Lỗi'); } finally { System.out.println('Finally block'); } } } Đoạn code trên sẽ in ra màn hình những gì? A A. Lỗi B B. Finally block C C. Lỗi Finally block D D. Không in ra gì cả. Câu 30 30. 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. Lưu trữ và quản lý dữ liệu. C C. Xử lý tương tác người dùng và cập nhật Model và View. D D. Định nghĩa cấu trúc dữ liệu. Đề 8 – Bài tập, đề thi trắc nghiệm online Chi tiết máy Đề 10 – Bài tập, đề thi trắc nghiệm online Ngữ pháp lý thuyết tiếng Anh