Bài Tập, Đề Thi Trắc Nghiệm Online – Môn Java – Đề 04

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é!!!


Môn Java

Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java - Đề 04

Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java - Đề 04 bao gồm nhiều câu hỏi hay, bám sát chương trình. Cùng làm bài tập trắc nghiệm ngay.

Câu 1: Trong Java, phát biểu nào sau đây là đúng về tính đóng gói (encapsulation)?

  • A. Tính đóng gói chỉ áp dụng cho các biến instance, không áp dụng cho phương thức.
  • B. Tính đóng gói là cơ chế ẩn giấu thông tin và bảo vệ dữ liệu của đối tượng, chỉ cho phép truy cập thông qua các phương thức công khai.
  • C. Tính đóng gói giúp tăng hiệu suất chương trình bằng cách giảm thiểu việc truy cập trực tiếp vào dữ liệu.
  • D. Tính đóng gói chỉ cần thiết khi làm việc với các lớp kế thừa.

Câu 2: Cho đoạn mã Java sau:
```java
public class Example {
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(

  • A. 5
    Hoàn tất
  • B. Lỗi truy cập mảng
  • C. Lỗi truy cập mảng
    Hoàn tất
  • D. Chương trình sẽ không biên dịch được

Câu 3: 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. Không có sự khác biệt, cả hai đều so sánh giá trị của chuỗi.
  • B. Không có sự khác biệt, cả hai đều so sánh tham chiếu của đối tượng.
  • C. `equals()` so sánh tham chiếu, còn `==` so sánh giá trị.
  • D. `equals()` so sánh giá trị nội dung của chuỗi, còn `==` so sánh tham chiếu (vị trí bộ nhớ) của đối tượng String.

Câu 4: Trong Java, interface và abstract class có điểm chung nào sau đây?

  • A. Cả hai đều có thể chứa các phương thức đã được triển khai (có phần thân).
  • B. Cả hai đều không thể được khởi tạo trực tiếp (không thể tạo đối tượng trực tiếp từ chúng).
  • C. Cả hai đều hỗ trợ đa kế thừa.
  • D. Cả hai đều sử dụng từ khóa `extends` để kế thừa.

Câu 5: Cho đoạn mã Java sau:
```java
public class Calculation {
public int calculate(int a, int b) {
return a + b;
}
public double calculate(double a, double b) {
return a * b;
}
}
```
Đoạn mã trên thể hiện khái niệm nào trong lập trình hướng đối tượng?

  • A. Nạp chồng phương thức (Method Overloading)
  • B. Ghi đè phương thức (Method Overriding)
  • C. Tính kế thừa (Inheritance)
  • D. Tính đóng gói (Encapsulation)

Câu 6: Từ khóa `static` trong Java được sử dụng để làm gì?

  • A. Khai báo một biến là hằng số, giá trị không thể thay đổi sau khi khởi tạo.
  • B. Chỉ định rằng một lớp không thể được kế thừa.
  • C. Tạo ra các thành viên (biến, phương thức, khối) thuộc về lớp chứ không phải đối tượng cụ thể của lớp đó.
  • D. Cho phép một phương thức có thể được gọi từ bất kỳ đâu trong chương trình.

Câu 7: Cho đoạn mã Java sau:
```java
List names = new ArrayList<>();
names.add(

  • B.

Câu 8: Vòng lặp `for-each` trong Java được sử dụng chủ yếu để làm gì?

  • A. Thực hiện lặp vô hạn cho đến khi có điều kiện dừng.
  • B. Lặp qua một khối mã với số lần lặp xác định trước dựa trên một điều kiện.
  • C. Tạo ra một vòng lặp dựa trên chỉ số của phần tử trong mảng.
  • D. Duyệt qua tất cả các phần tử của một mảng hoặc Collection một cách tuần tự.

Câu 9: Cho biết kết quả của biểu thức `5 > 3 && 2 < 4 || !(1 == 1)` trong Java.

  • A. true
  • B. false
  • C. 1
  • D. 0

Câu 10: Trong Java, kiểu dữ liệu nào sau đây được sử dụng để lưu trữ một ký tự Unicode?

  • A. byte
  • B. int
  • C. char
  • D. String

Câu 11: Sự khác biệt chính giữa `StringBuilder` và `StringBuffer` trong Java là gì?

  • A. `StringBuilder` là bất biến (immutable), còn `StringBuffer` là khả biến (mutable).
  • B. `StringBuffer` là thread-safe (an toàn luồng), còn `StringBuilder` thì không.
  • C. `StringBuilder` có thể lưu trữ chuỗi dài hơn `StringBuffer`.
  • D. `StringBuffer` được giới thiệu trong các phiên bản Java mới hơn `StringBuilder`.

Câu 12: Cho đoạn mã Java sau:
```java
public class ScopeExample {
int x = 10; // Biến instance
public void methodA() {
int y = 20; // Biến local
System.out.println(

  • A. Tính kế thừa (Inheritance)
  • B. Tính đóng gói (Encapsulation)
  • C. Phạm vi biến (Variable Scope)
  • D. Đa hình (Polymorphism)

Câu 13: Trong lập trình hướng đối tượng, "tính kế thừa" (inheritance) mang lại lợi ích chính nào?

  • A. Tăng tốc độ thực thi chương trình.
  • B. Tái sử dụng mã nguồn và giảm sự trùng lặp.
  • C. Cải thiện tính bảo mật của dữ liệu.
  • D. Giảm kích thước bộ nhớ sử dụng của chương trình.

Câu 14: Phương thức `finalize()` trong Java được sử dụng để làm gì?

  • A. Khởi tạo giá trị ban đầu cho các biến instance của đối tượng.
  • B. Thực hiện các thao tác dọn dẹp ngay khi đối tượng không còn được tham chiếu đến nữa một cách chắc chắn.
  • C. Giải phóng bộ nhớ mà đối tượng đang chiếm giữ ngay lập tức.
  • D. Thực hiện các hoạt động dọn dẹp tài nguyên (ví dụ: đóng file, giải phóng kết nối) trước khi đối tượng bị thu gom bởi garbage collector (mặc dù việc thực thi không đảm bảo).

Câu 15: Cho đoạn mã Java sau:
```java
int x = 10;
int y = x++;
int z = ++x;
System.out.println(

  • A. x=11, y=11, z=12
  • B. x=12, y=10, z=12
  • C. x=12, y=11, z=11
  • D. x=10, y=10, z=10

Câu 16: Trong Java, annotation (chú thích) được sử dụng để làm gì?

  • A. Thay thế hoàn toàn cho comment (chú thích thông thường) trong code.
  • B. Thay đổi cách biên dịch và thực thi của chương trình một cách trực tiếp.
  • C. Cung cấp metadata (dữ liệu về dữ liệu) cho compiler, JVM hoặc các framework/library khác để xử lý.
  • D. Tăng hiệu suất của chương trình bằng cách tối ưu hóa mã nguồn.

Câu 17: Cho đoạn mã Java sau:
```java
public class TernaryOperator {
public static void main(String[] args) {
int age = 20;
String message = (age >= 18) ?

  • A. Toán tử gán (=)
  • B. Toán tử logic AND (&&)
  • C. Toán tử so sánh lớn hơn hoặc bằng (>=)
  • D. Toán tử ternary (điều kiện) (? 🙂

Câu 18: Trong Java, "garbage collection" (thu gom rác) là quá trình gì?

  • A. Quá trình JVM tự động giải phóng bộ nhớ không còn được chương trình sử dụng.
  • B. Quá trình lập trình viên chủ động giải phóng bộ nhớ bằng từ khóa `delete`.
  • C. Quá trình hệ điều hành quản lý bộ nhớ cho các ứng dụng Java.
  • D. Quá trình tối ưu hóa bộ nhớ để chương trình chạy nhanh hơn.

Câu 19: Cho đoạn mã Java sau:
```java
public class IncrementExample {
public static void main(String[] args) {
int count = 5;
increaseCount(count);
System.out.println(count);
}
public static void increaseCount(int value) {
value++;
}
}
```
Kết quả in ra của đoạn mã trên là gì?

  • A. 6
  • B. Lỗi biên dịch
  • C. 5
  • D. Chương trình không in ra gì

Câu 20: Trong Java, package (gói) được sử dụng để làm gì?

  • A. Tăng tốc độ biên dịch chương trình.
  • B. Tổ chức và quản lý các lớp, interface liên quan, tránh xung đột tên và phân loại chức năng.
  • C. Nén code để giảm kích thước file .class.
  • D. Tăng cường tính bảo mật bằng cách ẩn code nguồn.

Câu 21: Cho đoạn mã Java sau:
```java
public class ModuloExample {
public static void main(String[] args) {
int result = 17 % 5;
System.out.println(result);
}
}
```
Kết quả in ra của đoạn mã trên là gì?

  • A. 3.4
  • B. 5
  • C. 0
  • D. 2

Câu 22: Trong Java, "constructor" (hàm tạo) có vai trò chính là gì?

  • A. Giải phóng bộ nhớ khi đối tượng không còn được sử dụng.
  • B. Thay đổi trạng thái của đối tượng sau khi đã được tạo.
  • C. Khởi tạo đối tượng và thiết lập giá trị ban đầu cho các thuộc tính (biến instance).
  • D. Gọi các phương thức khác của lớp.

Câu 23: Cho đoạn mã Java sau:
```java
String str1 =

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

Câu 24: Trong Java, từ khóa `final` có thể được sử dụng với biến, class và method. Ý nghĩa của `final` khi sử dụng với class là gì?

  • A. Class đó phải được khởi tạo cuối cùng trong chương trình.
  • B. Class đó không thể chứa bất kỳ phương thức nào.
  • C. Class đó không thể được kế thừa bởi bất kỳ class nào khác.
  • D. Các biến instance của class đó phải là final.

Câu 25: Cho đoạn mã Java sau:
```java
public class LoopExample {
public static void main(String[] args) {
for (int i = 0; i < 5; ) { System.out.println(i); i++; } } } ``` Đoạn mã trên sẽ in ra các số nào?

  • A. 0
    1
    2
    3
    4
  • B. 1
    2
    3
    4
    5
  • C. 0
    2
    4
  • D. Vòng lặp vô hạn

Câu 26: Trong Java, "checked exception" và "unchecked exception" khác nhau như thế nào?

  • 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ý (bằng try-catch hoặc throws) tại thời điểm biên dịch, unchecked exception thì không.
  • C. Checked exception là các lỗi nghiêm trọng, unchecked exception là các lỗi nhẹ.
  • D. Checked exception chỉ xảy ra trong quá trình runtime, unchecked exception chỉ xảy ra trong quá trình biên dịch.

Câu 27: Cho đoạn mã Java sau:
```java
public class ArrayExample {
public static void main(String[] args) {
int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
System.out.println(matrix[1][2]);
}
}
```
Kết quả in ra của đoạn mã trên là gì?

  • A. 2
  • B. 5
  • C. 6
  • D. 8

Câu 28: Trong Java, "đa luồng" (multithreading) được sử dụng để làm gì?

  • A. Tăng tính bảo mật cho ứng dụng Java.
  • B. Giảm kích thước bộ nhớ sử dụng của ứng dụng.
  • C. Đơn giản hóa việc viết code.
  • D. Thực hiện nhiều tác vụ đồng thời trong một chương trình, tận dụng khả năng xử lý song song của CPU và cải thiện hiệu suất.

Câu 29: Cho đoạn mã Java sau:
```java
public class StringExample {
public static void main(String[] args) {
String text =

  • A. Hello,
  • B. Hello
  • C. World
  • D. Hello, World!

Câu 30: Trong Java, Adapter Pattern thuộc nhóm Design Pattern nào?

  • A. Creational Patterns
  • B. Behavioral Patterns
  • C. Structural Patterns
  • D. Concurrency Patterns

1 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 1: Trong Java, phát biểu nào sau đây là đúng về tính đóng gói (encapsulation)?

2 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 2: Cho đoạn mã Java sau:n```javanpublic class Example {n public static void main(String[] args) {n int[] numbers = {1, 2, 3, 4, 5};n try {n System.out.println(numbers[5]);n } catch (ArrayIndexOutOfBoundsException e) {n System.out.println("Lỗi truy cập mảng");n } finally {n System.out.println("Hoàn tất");n }n }n}n```nĐoạn mã trên sẽ in ra kết quả gì?

3 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 3: 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?

4 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 4: Trong Java, interface và abstract class có điểm chung nào sau đây?

5 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 5: Cho đoạn mã Java sau:n```javanpublic class Calculation {n public int calculate(int a, int b) {n return a + b;n }n public double calculate(double a, double b) {n return a * b;n }n}n```nĐoạn mã trên thể hiện khái niệm nào trong lập trình hướng đối tượng?

6 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 6: Từ khóa `static` trong Java được sử dụng để làm gì?

7 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 7: Cho đoạn mã Java sau:n```javanList names = new ArrayList<>();nnames.add("Alice");nnames.add("Bob");nnames.add("Charlie");nn// ... (thêm code vào đây)nnSystem.out.println(names.get(1));n```nĐể in ra phần tử "Bob", bạn cần thêm đoạn code nào vào vị trí `// ... (thêm code vào đây)` nếu muốn loại bỏ phần tử "Alice" khỏi danh sách trước khi in?

8 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 8: Vòng lặp `for-each` trong Java được sử dụng chủ yếu để làm gì?

9 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 9: Cho biết kết quả của biểu thức `5 > 3 && 2 < 4 || !(1 == 1)` trong Java.

10 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 10: Trong Java, kiểu dữ liệu nào sau đây được sử dụng để lưu trữ một ký tự Unicode?

11 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 11: Sự khác biệt chính giữa `StringBuilder` và `StringBuffer` trong Java là gì?

12 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 12: Cho đoạn mã Java sau:n```javanpublic class ScopeExample {n int x = 10; // Biến instancen public void methodA() {n int y = 20; // Biến localn System.out.println("x = " + x + ", y = " + y);n }n public void methodB() {n System.out.println("x = " + x); // Có thể truy cập xn // System.out.println("y = " + y); // Lỗi: y không thể truy cập ở đâyn }n}n```nĐoạn mã trên minh họa khái niệm gì trong Java?

13 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 13: Trong lập trình hướng đối tượng, 'tính kế thừa' (inheritance) mang lại lợi ích chính nào?

14 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 14: Phương thức `finalize()` trong Java được sử dụng để làm gì?

15 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 15: Cho đoạn mã Java sau:n```javanint x = 10;nint y = x++;nint z = ++x;nSystem.out.println("x=" + x + ", y=" + y + ", z=" + z);n```nKết quả in ra của đoạn mã trên là gì?

16 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 16: Trong Java, annotation (chú thích) được sử dụng để làm gì?

17 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 17: Cho đoạn mã Java sau:n```javanpublic class TernaryOperator {n public static void main(String[] args) {n int age = 20;n String message = (age >= 18) ? "Đủ tuổi" : "Chưa đủ tuổi";n System.out.println(message);n }n}n```nĐoạn mã trên sử dụng toán tử nào?

18 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 18: Trong Java, 'garbage collection' (thu gom rác) là quá trình gì?

19 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 19: Cho đoạn mã Java sau:n```javanpublic class IncrementExample {n public static void main(String[] args) {n int count = 5;n increaseCount(count);n System.out.println(count);n }n public static void increaseCount(int value) {n value++;n }n}n```nKết quả in ra của đoạn mã trên là gì?

20 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 20: Trong Java, package (gói) được sử dụng để làm gì?

21 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 21: Cho đoạn mã Java sau:n```javanpublic class ModuloExample {n public static void main(String[] args) {n int result = 17 % 5;n System.out.println(result);n }n}n```nKết quả in ra của đoạn mã trên là gì?

22 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 22: Trong Java, 'constructor' (hàm tạo) có vai trò chính là gì?

23 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 23: Cho đoạn mã Java sau:n```javanString str1 = "Java";nString str2 = new String("Java");nSystem.out.println(str1 == str2);nSystem.out.println(str1.equals(str2));n```nKết quả in ra của đoạn mã trên là gì?

24 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 24: Trong Java, từ khóa `final` có thể được sử dụng với biến, class và method. Ý nghĩa của `final` khi sử dụng với class là gì?

25 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 25: Cho đoạn mã Java sau:n```javanpublic class LoopExample {n public static void main(String[] args) {n for (int i = 0; i < 5; ) {n System.out.println(i);n i++;n }n }n}n```nĐoạn mã trên sẽ in ra các số nào?

26 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 26: Trong Java, 'checked exception' và 'unchecked exception' khác nhau như thế nào?

27 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 27: Cho đoạn mã Java sau:n```javanpublic class ArrayExample {n public static void main(String[] args) {n int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};n System.out.println(matrix[1][2]);n }n}n```nKết quả in ra của đoạn mã trên là gì?

28 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 28: Trong Java, 'đa luồng' (multithreading) được sử dụng để làm gì?

29 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 29: Cho đoạn mã Java sau:n```javanpublic class StringExample {n public static void main(String[] args) {n String text = "Hello, World!";n System.out.println(text.substring(0, 5));n }n}n```nKết quả in ra của đoạn mã trên là gì?

30 / 30

Category: Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java

Tags: Bộ đề 4

Câu 30: Trong Java, Adapter Pattern thuộc nhóm Design Pattern nào?

Xem kết quả