Đề 5 – Bài tập, đề thi trắc nghiệm online 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é!!!


Java

Đề 5 - Bài tập, đề thi trắc nghiệm online Java

1. Trong Java, hãy giải thích mục đích của Design Pattern Singleton.

A. Để đảm bảo rằng một class chỉ có một instance duy nhất và cung cấp một điểm truy cập toàn cục đến instance đó.
B. Để tạo ra nhiều instance của một class.
C. Để ẩn các chi tiết triển khai của một class.
D. Để tạo ra một class abstract.

2. Sự khác biệt chính giữa `==` và `.equals()` khi so sánh các đối tượng trong Java là gì?

A. `==` so sánh giá trị của các đối tượng, trong khi `.equals()` so sánh tham chiếu.
B. `==` so sánh tham chiếu của các đối tượng, trong khi `.equals()` so sánh nội dung của các đối tượng.
C. Không có sự khác biệt giữa chúng.
D. `==` chỉ có thể được sử dụng để so sánh các số nguyên, trong khi `.equals()` có thể được sử dụng để so sánh bất kỳ đối tượng nào.

3. Mục đích chính của garbage collection trong Java là gì?

A. Tối ưu hóa hiệu suất của CPU.
B. Giải phóng bộ nhớ không còn được sử dụng bởi chương trình.
C. Ngăn chặn các cuộc tấn công bảo mật.
D. Quản lý các thread trong chương trình.

4. Sự khác biệt chính giữa `throw` và `throws` trong Java là gì?

A. `throw` dùng để ném một exception, còn `throws` dùng để khai báo một phương thức có thể ném exception.
B. `throw` dùng để xử lý một exception, còn `throws` dùng để ném một exception.
C. Không có sự khác biệt, chúng có thể được sử dụng thay thế cho nhau.
D. `throw` dùng để khai báo một biến, còn `throws` dùng để khai báo một phương thức.

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

A. `ArrayList` sử dụng mảng động, trong khi `LinkedList` sử dụng cấu trúc dữ liệu liên kết đôi.
B. `ArrayList` cho phép lưu trữ các phần tử trùng lặp, trong khi `LinkedList` thì không.
C. `ArrayList` an toàn cho đa luồng, trong khi `LinkedList` thì không.
D. `ArrayList` có kích thước cố định, trong khi `LinkedList` có thể thay đổi kích thước linh hoạt.

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

A. So sánh hai đối tượng xem chúng có tham chiếu đến cùng một vùng nhớ hay không.
B. Gán giá trị của một đối tượng cho một đối tượng khác.
C. So sánh nội dung của hai đối tượng để xem chúng có bằng nhau hay không.
D. Kiểm tra xem một đối tượng có phải là null hay không.

7. Dependency Injection (DI) là gì và nó giúp ích gì trong phát triển phần mềm Java?

A. Một kỹ thuật để giảm sự phụ thuộc giữa các class, giúp code dễ bảo trì và kiểm thử hơn.
B. Một kỹ thuật để tăng hiệu suất của chương trình.
C. Một kỹ thuật để bảo mật code.
D. Một kỹ thuật để quản lý bộ nhớ.

8. Đâu là cách tốt nhất để so sánh hai chuỗi (String) trong Java?

A. Sử dụng toán tử `==`.
B. Sử dụng phương thức `equals()`.
C. Sử dụng phương thức `compareTo()`.
D. Sử dụng phương thức `equalsIgnoreCase()`.

9. Trong Java, exception `NullPointerException` xảy ra khi nào?

A. Khi cố gắng truy cập một biến có giá trị null.
B. Khi một mảng được truy cập với một chỉ số vượt quá kích thước của nó.
C. Khi cố gắng thực hiện một phép toán số học không hợp lệ.
D. Khi một file không được tìm thấy.

10. Trong Java, khi nào nên sử dụng `StringBuilder` thay vì `String`?

A. Khi cần thực hiện nhiều thao tác thay đổi chuỗi (ví dụ: nối, chèn, xóa).
B. Khi cần so sánh hai chuỗi.
C. Khi cần lưu trữ một chuỗi hằng số.
D. Khi cần tạo ra một thread mới.

11. Trong Java, mục đích của từ khóa `synchronized` là gì?

A. Để tạo ra một thread mới.
B. Để ngăn chặn việc truy cập đồng thời vào một đoạn code hoặc một đối tượng bởi nhiều thread.
C. Để tối ưu hóa hiệu suất của chương trình.
D. Để khai báo một biến là hằng số.

12. Trong Java, hãy giải thích mục đích của Maven hoặc Gradle.

A. Để quản lý dependencies (các thư viện bên ngoài) và tự động hóa quá trình build, test và deploy ứng dụng.
B. Để tạo ra giao diện người dùng đồ họa.
C. Để quản lý bộ nhớ.
D. Để tối ưu hóa hiệu suất của chương trình.

13. Trong Java, phương thức `hashCode()` được sử dụng để làm gì?

A. Để tạo ra một bản sao của một đối tượng.
B. Để trả về một giá trị số nguyên đại diện cho đối tượng, thường được sử dụng trong các cấu trúc dữ liệu như HashMap.
C. Để so sánh hai đối tượng.
D. Để chuyển đổi một đối tượng thành một chuỗi.

14. Trong Java, từ khóa `final` có ý nghĩa gì khi được sử dụng với một biến?

A. Biến có thể được truy cập từ bất kỳ đâu trong chương trình.
B. Giá trị của biến không thể thay đổi sau khi đã được gán.
C. Biến chỉ có thể được truy cập trong phạm vi của phương thức mà nó được khai báo.
D. Biến sẽ tự động bị xóa khỏi bộ nhớ khi không còn được sử dụng.

15. Luồng (Stream) trong Java được sử dụng để làm gì?

A. Đọc và ghi dữ liệu từ/vào file.
B. Thực hiện các phép toán trên tập hợp dữ liệu một cách tuần tự hoặc song song.
C. Tạo ra các đối tượng mới.
D. Quản lý bộ nhớ của chương trình.

16. Interface trong Java KHÔNG thể chứa:

A. Các phương thức abstract.
B. Các hằng số (constants).
C. Các phương thức default.
D. Các biến instance.

17. Khi nào một biến được gọi là "biến instance" trong Java?

A. Khi nó được khai báo bên trong một phương thức.
B. Khi nó được khai báo bên trong một class nhưng bên ngoài bất kỳ phương thức nào và không có từ khóa `static`.
C. Khi nó được khai báo với từ khóa `static`.
D. Khi nó được khai báo là `final`.

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

A. Để tạo ra các đối tượng mới.
B. Để cung cấp siêu dữ liệu (metadata) về code.
C. Để thực hiện các phép toán số học.
D. Để quản lý bộ nhớ.

19. Trong Java, từ khóa `static` được sử dụng để khai báo một thành viên của class thuộc về...

A. Một instance cụ thể của class.
B. Tất cả các instance của class.
C. Chỉ instance đầu tiên được tạo của class.
D. Không instance nào cả.

20. Serialization trong Java là gì?

A. Quá trình chuyển đổi một đối tượng thành một chuỗi byte để lưu trữ hoặc truyền tải.
B. Quá trình tạo ra một instance mới của một class.
C. Quá trình kiểm tra kiểu dữ liệu của một biến.
D. Quá trình mã hóa dữ liệu để bảo mật.

21. Trong Java, hãy giải thích khái niệm về "Functional Interface".

A. Một interface không có phương thức nào.
B. Một interface chỉ có một phương thức abstract.
C. Một interface chỉ có các phương thức static.
D. Một interface chỉ có các phương thức default.

22. Trong Java, hãy giải thích sự khác biệt giữa "Overloading" và "Overriding".

A. "Overloading" là việc định nghĩa nhiều phương thức cùng tên trong một class với các tham số khác nhau, còn "Overriding" là việc định nghĩa lại một phương thức của class cha trong class con.
B. "Overloading" là việc định nghĩa lại một phương thức của class cha trong class con, còn "Overriding" là việc định nghĩa nhiều phương thức cùng tên trong một class với các tham số khác nhau.
C. Không có sự khác biệt giữa chúng.
D. "Overloading" chỉ áp dụng cho các phương thức static, còn "Overriding" chỉ áp dụng cho các phương thức instance.

23. Đâu là lợi ích của việc sử dụng Generics trong Java?

A. Cho phép viết code có thể làm việc với nhiều kiểu dữ liệu khác nhau một cách an toàn kiểu.
B. Tăng hiệu suất của chương trình.
C. Giảm kích thước của code.
D. Cho phép sử dụng đa kế thừa.

24. Trong Java, cơ chế Reflection cho phép làm gì?

A. Cho phép chương trình kiểm tra và thao tác các class, interface, field và method tại runtime.
B. Cho phép chương trình thực hiện các phép toán số học phức tạp.
C. Cho phép chương trình quản lý bộ nhớ một cách hiệu quả.
D. Cho phép chương trình tạo ra các giao diện người dùng đồ họa.

25. Trong Java, đặc điểm nào sau đây KHÔNG phải là một lợi ích của việc sử dụng tính đóng gói (encapsulation)?

A. Giảm sự phức tạp của code bằng cách ẩn các chi tiết triển khai.
B. Tăng tính bảo mật bằng cách bảo vệ dữ liệu khỏi truy cập trực tiếp từ bên ngoài.
C. Cho phép thay đổi triển khai bên trong class mà không ảnh hưởng đến code bên ngoài sử dụng class đó.
D. Tăng hiệu năng của chương trình do giảm thiểu truy cập bộ nhớ.

26. Trong Java, hãy giải thích mục đích của từ khóa `volatile`.

A. Ngăn chặn việc truy cập đồng thời vào một biến bởi nhiều luồng.
B. Đảm bảo rằng một biến được đọc từ bộ nhớ chính thay vì từ cache của CPU, giúp các luồng khác nhau nhìn thấy giá trị cập nhật nhất.
C. Tạo ra một biến hằng số.
D. Tối ưu hóa hiệu suất của chương trình.

27. Trong Java, hãy giải thích sự khác biệt giữa `HashSet` và `TreeSet`.

A. `HashSet` duy trì thứ tự các phần tử được thêm vào, trong khi `TreeSet` thì không.
B. `HashSet` không duy trì thứ tự các phần tử, trong khi `TreeSet` duy trì thứ tự các phần tử theo một trật tự nhất định (ví dụ: tăng dần).
C. `HashSet` cho phép lưu trữ các phần tử trùng lặp, trong khi `TreeSet` thì không.
D. `HashSet` an toàn cho đa luồng, trong khi `TreeSet` thì không.

28. Đâu là sự khác biệt chính giữa checked exception và unchecked exception trong Java?

A. Checked exception phải được xử lý hoặc khai báo trong mệnh đề `throws`, trong khi unchecked exception thì không.
B. Checked exception xảy ra trong thời gian chạy, trong khi unchecked exception xảy ra trong thời gian biên dịch.
C. Checked exception là các exception thuộc lớp `Error`, trong khi unchecked exception là các exception thuộc lớp `Exception`.
D. Checked exception có thể được phục hồi, trong khi unchecked exception thì không.

29. Trong Java, Stream API cung cấp những lợi ích gì so với việc sử dụng vòng lặp truyền thống để xử lý tập hợp dữ liệu?

A. Code ngắn gọn và dễ đọc hơn, khả năng xử lý song song dễ dàng hơn.
B. Hiệu suất luôn cao hơn.
C. Khả năng kiểm soát tốt hơn đối với quá trình xử lý.
D. Không cần khai báo kiểu dữ liệu.

30. Trong Java, Lambda Expression là gì?

A. Một cách để tạo ra các class ẩn danh.
B. Một cách để biểu diễn một instance của một functional interface.
C. Một cách để quản lý bộ nhớ.
D. Một cách để tạo ra các thread mới.

1 / 30

Category: Java

Tags: Bộ đề 5

1. Trong Java, hãy giải thích mục đích của Design Pattern Singleton.

2 / 30

Category: Java

Tags: Bộ đề 5

2. Sự khác biệt chính giữa `==` và `.equals()` khi so sánh các đối tượng trong Java là gì?

3 / 30

Category: Java

Tags: Bộ đề 5

3. Mục đích chính của garbage collection trong Java là gì?

4 / 30

Category: Java

Tags: Bộ đề 5

4. Sự khác biệt chính giữa `throw` và `throws` trong Java là gì?

5 / 30

Category: Java

Tags: Bộ đề 5

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

6 / 30

Category: Java

Tags: Bộ đề 5

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

7 / 30

Category: Java

Tags: Bộ đề 5

7. Dependency Injection (DI) là gì và nó giúp ích gì trong phát triển phần mềm Java?

8 / 30

Category: Java

Tags: Bộ đề 5

8. Đâu là cách tốt nhất để so sánh hai chuỗi (String) trong Java?

9 / 30

Category: Java

Tags: Bộ đề 5

9. Trong Java, exception `NullPointerException` xảy ra khi nào?

10 / 30

Category: Java

Tags: Bộ đề 5

10. Trong Java, khi nào nên sử dụng `StringBuilder` thay vì `String`?

11 / 30

Category: Java

Tags: Bộ đề 5

11. Trong Java, mục đích của từ khóa `synchronized` là gì?

12 / 30

Category: Java

Tags: Bộ đề 5

12. Trong Java, hãy giải thích mục đích của Maven hoặc Gradle.

13 / 30

Category: Java

Tags: Bộ đề 5

13. Trong Java, phương thức `hashCode()` được sử dụng để làm gì?

14 / 30

Category: Java

Tags: Bộ đề 5

14. Trong Java, từ khóa `final` có ý nghĩa gì khi được sử dụng với một biến?

15 / 30

Category: Java

Tags: Bộ đề 5

15. Luồng (Stream) trong Java được sử dụng để làm gì?

16 / 30

Category: Java

Tags: Bộ đề 5

16. Interface trong Java KHÔNG thể chứa:

17 / 30

Category: Java

Tags: Bộ đề 5

17. Khi nào một biến được gọi là 'biến instance' trong Java?

18 / 30

Category: Java

Tags: Bộ đề 5

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

19 / 30

Category: Java

Tags: Bộ đề 5

19. Trong Java, từ khóa `static` được sử dụng để khai báo một thành viên của class thuộc về...

20 / 30

Category: Java

Tags: Bộ đề 5

20. Serialization trong Java là gì?

21 / 30

Category: Java

Tags: Bộ đề 5

21. Trong Java, hãy giải thích khái niệm về 'Functional Interface'.

22 / 30

Category: Java

Tags: Bộ đề 5

22. Trong Java, hãy giải thích sự khác biệt giữa 'Overloading' và 'Overriding'.

23 / 30

Category: Java

Tags: Bộ đề 5

23. Đâu là lợi ích của việc sử dụng Generics trong Java?

24 / 30

Category: Java

Tags: Bộ đề 5

24. Trong Java, cơ chế Reflection cho phép làm gì?

25 / 30

Category: Java

Tags: Bộ đề 5

25. Trong Java, đặc điểm nào sau đây KHÔNG phải là một lợi ích của việc sử dụng tính đóng gói (encapsulation)?

26 / 30

Category: Java

Tags: Bộ đề 5

26. Trong Java, hãy giải thích mục đích của từ khóa `volatile`.

27 / 30

Category: Java

Tags: Bộ đề 5

27. Trong Java, hãy giải thích sự khác biệt giữa `HashSet` và `TreeSet`.

28 / 30

Category: Java

Tags: Bộ đề 5

28. Đâu là sự khác biệt chính giữa checked exception và unchecked exception trong Java?

29 / 30

Category: Java

Tags: Bộ đề 5

29. Trong Java, Stream API cung cấp những lợi ích gì so với việc sử dụng vòng lặp truyền thống để xử lý tập hợp dữ liệu?

30 / 30

Category: Java

Tags: Bộ đề 5

30. Trong Java, Lambda Expression là gì?