Đề 2 – Bài tập, đề thi trắc nghiệm online Lập trình java

0

Bạn đã sẵn sàng chưa? 45 phút làm bài bắt đầu!!!

Bạn đã hết giờ làm bài! Xem kết quả các câu hỏi đã làm nhé!!!


Lập trình java

Đề 2 - Bài tập, đề thi trắc nghiệm online Lập trình java

1. Đâu là sự khác biệt chính giữa `ArrayList` và `LinkedList` trong Java?

A. `ArrayList` nhanh hơn trong việc thêm/xóa phần tử ở đầu danh sách.
B. `LinkedList` sử dụng mảng động, `ArrayList` sử dụng danh sách liên kết.
C. `ArrayList` truy cập phần tử ngẫu nhiên nhanh hơn, `LinkedList` thêm/xóa phần tử ở giữa danh sách nhanh hơn.
D. `LinkedList` chỉ lưu trữ các đối tượng String, `ArrayList` lưu trữ mọi kiểu đối tượng.

2. Trong Java, 'đa luồng' (multithreading) là gì và lợi ích của nó?

A. Chia chương trình thành nhiều module nhỏ để dễ quản lý.
B. Thực hiện đồng thời nhiều đoạn mã khác nhau trong cùng một chương trình, tăng hiệu suất.
C. Tự động kiểm tra và sửa lỗi trong chương trình.
D. Tạo ra giao diện người dùng đồ họa (GUI).

3. Phương thức `hashCode()` trong Java thường được ghi đè cùng với phương thức nào và tại sao?

A. `clone()`, để đảm bảo sao chép đối tượng đúng cách.
B. `equals()`, để duy trì tính nhất quán trong việc so sánh đối tượng trong các cấu trúc dữ liệu hash-based (như HashMap, HashSet).
C. `toString()`, để cung cấp biểu diễn chuỗi nhất quán của đối tượng.
D. `finalize()`, để đảm bảo dọn dẹp tài nguyên đúng cách.

4. Trong Java, package được sử dụng để làm gì?

A. Tăng tốc độ biên dịch chương trình.
B. Tổ chức các lớp và giao diện thành các nhóm logic, tránh xung đột tên và quản lý code tốt hơn.
C. Tối ưu hóa bộ nhớ sử dụng bởi chương trình.
D. Tạo ra giao diện người dùng đồ họa (GUI).

5. Annotation `@Override` trong Java được sử dụng để làm gì?

A. Đánh dấu một phương thức là tĩnh (static).
B. Chỉ ra rằng một phương thức trong lớp con đang ghi đè (override) một phương thức từ lớp cha.
C. Tạo ra một phương thức trừu tượng (abstract).
D. Bảo vệ một phương thức khỏi bị ghi đè bởi lớp con.

6. Ngoại lệ (Exception) `NullPointerException` xảy ra khi nào trong Java?

A. Khi cố gắng truy cập một biến cục bộ chưa được khởi tạo.
B. Khi cố gắng truy cập một đối tượng có giá trị null.
C. Khi chia một số cho 0.
D. Khi chuyển đổi một chuỗi không hợp lệ sang số.

7. Từ khóa `static` trong Java có ý nghĩa gì?

A. Biến hoặc phương thức static thuộc về thể hiện (instance) của lớp.
B. Biến hoặc phương thức static thuộc về chính lớp, không cần tạo thể hiện để truy cập.
C. Phương thức static chỉ có thể được gọi từ bên trong cùng một gói (package).
D. Biến static không thể thay đổi giá trị sau khi khởi tạo.

8. 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. extends
B. implements
C. new
D. class

9. Đoạn mã sau in ra kết quả gì?
```java
public class Test {
public static void main(String[] args) {
String str1 = 'Hello';
String str2 = new String('Hello');
System.out.println(str1 == str2);
System.out.println(str1.equals(str2));
}
}
```

A. true
true
B. false
false
C. false
true
D. true
false

10. Trong Java, 'inner class' (lớp bên trong) là gì và có những loại inner class nào?

A. Một lớp được định nghĩa bên ngoài bất kỳ lớp nào khác.
B. Một lớp được định nghĩa bên trong một lớp khác. Có các loại: member inner class, local inner class, anonymous inner class, static nested class.
C. Một lớp được sử dụng để xử lý ngoại lệ.
D. Một lớp được sử dụng để tạo giao diện người dùng đồ họa.

11. Trong Java, 'garbage collection' là gì và nó hoạt động như thế nào?

A. Một cơ chế quản lý bộ nhớ thủ công, lập trình viên phải tự giải phóng bộ nhớ không dùng nữa.
B. Một tiến trình tự động của JVM, giải phóng bộ nhớ mà các đối tượng không còn được tham chiếu đến.
C. Một kỹ thuật tối ưu hóa mã nguồn, giúp giảm thiểu việc sử dụng bộ nhớ.
D. Một thư viện bên ngoài cần cài đặt để quản lý bộ nhớ trong Java.

12. Java Streams API được giới thiệu từ phiên bản Java nào và mục đích chính của Streams API là gì?

A. Java 5, để quản lý bộ nhớ hiệu quả hơn.
B. Java 8, để xử lý dữ liệu collections một cách khai báo (declarative) và song song (parallel), giúp code ngắn gọn và dễ đọc hơn, tăng hiệu suất xử lý dữ liệu lớn.
C. Java 7, để cải thiện hiệu suất I/O.
D. Java 9, để module hóa code Java.

13. Trong Java, 'constructor' là gì và vai trò của nó?

A. Một phương thức đặc biệt để hủy đối tượng khi không còn sử dụng.
B. Một khối mã tĩnh được thực thi khi lớp được tải.
C. Một phương thức đặc biệt được gọi tự động khi một đối tượng của lớp được tạo ra, dùng để khởi tạo đối tượng.
D. Một giao diện định nghĩa các phương thức chung cho các lớp.

14. Giao diện (interface) trong Java khác với lớp trừu tượng (abstract class) như thế nào?

A. Lớp trừu tượng có thể chứa các phương thức concrete, giao diện thì không.
B. Giao diện có thể có các biến instance, lớp trừu tượng thì không.
C. Một lớp có thể kế thừa nhiều lớp trừu tượng, nhưng chỉ có thể implements một giao diện.
D. Lớp trừu tượng nhanh hơn giao diện về hiệu năng thực thi.

15. Java Collections Framework là gì và nó cung cấp những lợi ích gì?

A. Một framework để phát triển giao diện người dùng đồ họa (GUI) trong Java.
B. Một tập hợp các giao diện và lớp để lưu trữ và thao tác dữ liệu (như List, Set, Map), cung cấp cấu trúc dữ liệu và thuật toán hiệu quả.
C. Một framework để quản lý bộ nhớ tự động trong Java.
D. Một framework để xử lý ngoại lệ và lỗi trong Java.

16. Serialization trong Java là gì và khi nào nó được sử dụng?

A. Quá trình chuyển đổi mã nguồn Java sang bytecode.
B. Quá trình chuyển đổi một đối tượng thành một luồng byte để lưu trữ hoặc truyền qua mạng.
C. Quá trình kiểm tra và xác thực dữ liệu đầu vào.
D. Quá trình tối ưu hóa hiệu suất của chương trình Java.

17. Java Generics được giới thiệu để giải quyết vấn đề gì và lợi ích của việc sử dụng Generics là gì?

A. Giải quyết vấn đề hiệu suất của chương trình Java.
B. Giải quyết vấn đề kiểu an toàn (type safety) tại thời điểm biên dịch và loại bỏ nhu cầu ép kiểu (casting) khi làm việc với collections.
C. Giải quyết vấn đề quản lý bộ nhớ trong Java.
D. Giải quyết vấn đề tương thích ngược với các phiên bản Java cũ.

18. Java Reflection là gì và ứng dụng của nó trong lập trình?

A. Một kỹ thuật để tăng tốc độ thực thi chương trình Java.
B. Một API cho phép chương trình Java kiểm tra và sửa đổi cấu trúc, hành vi của chính nó trong thời gian chạy (runtime).
C. Một framework để tạo giao diện người dùng đồ họa (GUI).
D. Một công cụ để kiểm thử và debug mã Java.

19. Phương thức `main()` trong Java có kiểu trả về là gì?

A. int
B. void
C. String
D. boolean

20. Interface `Comparable` và `Comparator` trong Java khác nhau như thế nào và khi nào nên sử dụng cái nào?

A. `Comparable` dùng để so sánh hai đối tượng cùng loại, `Comparator` dùng để so sánh đối tượng thuộc các loại khác nhau.
B. `Comparable` định nghĩa cách so sánh tự nhiên của một lớp (so sánh bên trong lớp), `Comparator` định nghĩa cách so sánh bên ngoài lớp.
C. `Comparator` chỉ dùng cho kiểu dữ liệu nguyên thủy, `Comparable` dùng cho đối tượng.
D. Không có sự khác biệt, cả hai đều dùng để so sánh đối tượng.

21. Vòng lặp `for-each` (enhanced for loop) trong Java được sử dụng để làm gì?

A. Lặp qua các phần tử của một mảng hoặc collection một cách tuần tự.
B. Lặp vô hạn cho đến khi có một điều kiện dừng rõ ràng.
C. Lặp qua các phần tử của mảng theo thứ tự ngược lại.
D. Lặp với một số lần lặp cụ thể được xác định trước.

22. Trong Java, 'functional interface' là gì và điều kiện để một interface được coi là functional interface?

A. Một interface chỉ chứa các phương thức static.
B. Một interface chỉ chứa các phương thức default.
C. Một interface có chính xác một phương thức trừu tượng (single abstract method - SAM). Có thể có thêm các phương thức default hoặc static.
D. Một interface không chứa bất kỳ phương thức nào.

23. Đặc điểm nào sau đây KHÔNG phải là của lập trình hướng đối tượng (OOP)?

A. Tính đóng gói (Encapsulation)
B. Tính kế thừa (Inheritance)
C. Tính đa hình (Polymorphism)
D. Tính tuần tự (Sequential)

24. Phương thức `toString()` trong Java được sử dụng để làm gì?

A. So sánh hai đối tượng xem chúng có bằng nhau hay không.
B. Chuyển đổi một đối tượng thành kiểu dữ liệu String để in ra hoặc hiển thị.
C. Tạo một bản sao của đối tượng hiện tại.
D. Trả về kiểu dữ liệu của đối tượng.

25. Trong Java 8, 'Lambda Expression' là gì và lợi ích chính của việc sử dụng Lambda Expression?

A. Một cách mới để định nghĩa lớp và đối tượng.
B. Một cách biểu diễn ngắn gọn cho các anonymous inner class với một phương thức trừu tượng duy nhất (functional interface), giúp code ngắn gọn và dễ đọc hơn, đặc biệt khi làm việc với collections và streams.
C. Một cơ chế quản lý bộ nhớ mới trong Java.
D. Một cách để xử lý ngoại lệ hiệu quả hơn.

26. Đoạn mã sau in ra kết quả gì?
```java
public class Test {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
try {
System.out.println(numbers[5]);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println('Index out of bounds!');
} finally {
System.out.println('Finally block executed');
}
}
}
```

A. 5
Finally block executed
B. Index out of bounds!
C. Index out of bounds!
Finally block executed
D. Chương trình sẽ bị lỗi và không in ra gì.

27. 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 trong Java?

A. `equals()` so sánh tham chiếu đối tượng, `==` so sánh giá trị nội dung đối tượng.
B. `==` so sánh tham chiếu đối tượng, `equals()` so sánh giá trị nội dung đối tượng (nếu được override).
C. Cả hai đều so sánh tham chiếu đối tượng mặc định.
D. Cả hai đều so sánh giá trị nội dung đối tượng mặc định.

28. Phương thức `finalize()` trong Java được sử dụng để làm gì?

A. Khởi tạo các biến instance của một đối tượng.
B. Thực hiện các thao tác dọn dẹp cuối cùng trước khi đối tượng bị garbage collected.
C. Kiểm tra xem một đối tượng có còn được tham chiếu đến hay không.
D. Giải phóng bộ nhớ đã được cấp phát cho đối tượng.

29. Đâu là sự khác biệt chính giữa Checked Exception và Unchecked Exception trong Java?

A. Checked Exception xảy ra khi có lỗi cú pháp, Unchecked Exception xảy ra khi có lỗi logic.
B. Checked Exception phải được xử lý (try-catch hoặc throws) tại thời điểm biên dịch, Unchecked Exception không bắt buộc (thường là lỗi lập trình).
C. Unchecked Exception xảy ra trong thời gian biên dịch, Checked Exception xảy ra trong thời gian chạy.
D. Checked Exception luôn có thể phục hồi, Unchecked Exception thì không.

30. Trong Java, cơ chế nào cho phép 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?

A. Đóng gói (Encapsulation)
B. Đa hình (Polymorphism)
C. Kế thừa (Inheritance)
D. Trừu tượng (Abstraction)

1 / 30

Category: Lập trình java

Tags: Bộ đề 2

1. Đâu là sự khác biệt chính giữa `ArrayList` và `LinkedList` trong Java?

2 / 30

Category: Lập trình java

Tags: Bộ đề 2

2. Trong Java, `đa luồng` (multithreading) là gì và lợi ích của nó?

3 / 30

Category: Lập trình java

Tags: Bộ đề 2

3. Phương thức `hashCode()` trong Java thường được ghi đè cùng với phương thức nào và tại sao?

4 / 30

Category: Lập trình java

Tags: Bộ đề 2

4. Trong Java, package được sử dụng để làm gì?

5 / 30

Category: Lập trình java

Tags: Bộ đề 2

5. Annotation `@Override` trong Java được sử dụng để làm gì?

6 / 30

Category: Lập trình java

Tags: Bộ đề 2

6. Ngoại lệ (Exception) `NullPointerException` xảy ra khi nào trong Java?

7 / 30

Category: Lập trình java

Tags: Bộ đề 2

7. Từ khóa `static` trong Java có ý nghĩa gì?

8 / 30

Category: Lập trình java

Tags: Bộ đề 2

8. 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?

9 / 30

Category: Lập trình java

Tags: Bộ đề 2

9. Đoạn mã sau in ra kết quả gì? ```java public class Test { public static void main(String[] args) { String str1 = `Hello`; String str2 = new String(`Hello`); System.out.println(str1 == str2); System.out.println(str1.equals(str2)); } } ```

10 / 30

Category: Lập trình java

Tags: Bộ đề 2

10. Trong Java, `inner class` (lớp bên trong) là gì và có những loại inner class nào?

11 / 30

Category: Lập trình java

Tags: Bộ đề 2

11. Trong Java, `garbage collection` là gì và nó hoạt động như thế nào?

12 / 30

Category: Lập trình java

Tags: Bộ đề 2

12. Java Streams API được giới thiệu từ phiên bản Java nào và mục đích chính của Streams API là gì?

13 / 30

Category: Lập trình java

Tags: Bộ đề 2

13. Trong Java, `constructor` là gì và vai trò của nó?

14 / 30

Category: Lập trình java

Tags: Bộ đề 2

14. Giao diện (interface) trong Java khác với lớp trừu tượng (abstract class) như thế nào?

15 / 30

Category: Lập trình java

Tags: Bộ đề 2

15. Java Collections Framework là gì và nó cung cấp những lợi ích gì?

16 / 30

Category: Lập trình java

Tags: Bộ đề 2

16. Serialization trong Java là gì và khi nào nó được sử dụng?

17 / 30

Category: Lập trình java

Tags: Bộ đề 2

17. Java Generics được giới thiệu để giải quyết vấn đề gì và lợi ích của việc sử dụng Generics là gì?

18 / 30

Category: Lập trình java

Tags: Bộ đề 2

18. Java Reflection là gì và ứng dụng của nó trong lập trình?

19 / 30

Category: Lập trình java

Tags: Bộ đề 2

19. Phương thức `main()` trong Java có kiểu trả về là gì?

20 / 30

Category: Lập trình java

Tags: Bộ đề 2

20. Interface `Comparable` và `Comparator` trong Java khác nhau như thế nào và khi nào nên sử dụng cái nào?

21 / 30

Category: Lập trình java

Tags: Bộ đề 2

21. Vòng lặp `for-each` (enhanced for loop) trong Java được sử dụng để làm gì?

22 / 30

Category: Lập trình java

Tags: Bộ đề 2

22. Trong Java, `functional interface` là gì và điều kiện để một interface được coi là functional interface?

23 / 30

Category: Lập trình java

Tags: Bộ đề 2

23. Đặc điểm nào sau đây KHÔNG phải là của lập trình hướng đối tượng (OOP)?

24 / 30

Category: Lập trình java

Tags: Bộ đề 2

24. Phương thức `toString()` trong Java được sử dụng để làm gì?

25 / 30

Category: Lập trình java

Tags: Bộ đề 2

25. Trong Java 8, `Lambda Expression` là gì và lợi ích chính của việc sử dụng Lambda Expression?

26 / 30

Category: Lập trình java

Tags: Bộ đề 2

26. Đoạn mã sau in ra kết quả gì? ```java public class Test { public static void main(String[] args) { int[] numbers = {1, 2, 3, 4, 5}; try { System.out.println(numbers[5]); } catch (ArrayIndexOutOfBoundsException e) { System.out.println(`Index out of bounds!`); } finally { System.out.println(`Finally block executed`); } } } ```

27 / 30

Category: Lập trình java

Tags: Bộ đề 2

27. 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 trong Java?

28 / 30

Category: Lập trình java

Tags: Bộ đề 2

28. Phương thức `finalize()` trong Java được sử dụng để làm gì?

29 / 30

Category: Lập trình java

Tags: Bộ đề 2

29. Đâu là sự khác biệt chính giữa Checked Exception và Unchecked Exception trong Java?

30 / 30

Category: Lập trình java

Tags: Bộ đề 2

30. Trong Java, cơ chế nào cho phép 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?