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

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 - Đề 01

Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java - Đề 01 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: Cho đoạn mã Java sau:
```java
public class Example {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
if (number % 2 == 0) {
sum += number;
}
}
System.out.println(sum);
}
}
```
Đoạn mã trên in ra giá trị nào?

  • A. 15
  • B. 6
  • C. 3
  • D. 0

Câu 2: 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. `==` so sánh giá trị thuộc tính, `equals()` so sánh tham chiếu.
  • B. Cả hai đều so sánh giá trị thuộc tính của đối tượng.
  • C. `==` so sánh tham chiếu đối tượng, `equals()` so sánh nội dung (giá trị) đối tượng.
  • D. Cả hai đều so sánh tham chiếu đối tượng.

Câu 3: Trong lập trình hướng đối tượng Java, "tính đa hình" (polymorphism) mang lại lợi ích chính nào sau đây?

  • A. Tăng tính bảo mật của dữ liệu.
  • B. Giảm độ phức tạp của mã nguồn.
  • C. Cải thiện hiệu suất thực thi chương trình.
  • D. Cho phép đối tượng thuộc các lớp khác nhau phản ứng khác nhau với cùng một phương thức gọi.

Câu 4: Khi nào thì nên sử dụng giao diện (interface) thay vì lớp trừu tượng (abstract class) trong thiết kế lớp Java?

  • A. Khi muốn chia sẻ trạng thái (thuộc tính) giữa các lớp con.
  • B. Khi một lớp cần kế thừa hành vi từ nhiều nguồn khác nhau (đa kế thừa).
  • C. Khi muốn cung cấp một phương thức khởi tạo (constructor) cho các lớp con.
  • D. Khi muốn ngăn chặn việc tạo đối tượng trực tiếp từ lớp cha.

Câu 5: Cho đoạn code Java sau, kết quả in ra màn hình là gì?
```java
public class ScopeExample {
static int x = 10;
public static void main(String[] args) {
int x = 20;
System.out.println(x);
printX();
}
static void printX() {
System.out.println(x);
}
}
```

  • A. 20
    10
  • B. 10
    20
  • C. 20
    20
  • D. 10
    10

Câu 6: Trong Java, cơ chế "garbage collection" (thu gom rác) hoạt động như thế nào?

  • A. Lập trình viên phải chủ động giải phóng bộ nhớ khi đối tượng không còn dùng đến.
  • B. Hệ điều hành quản lý việc giải phóng bộ nhớ cho các ứng dụng Java.
  • C. JVM tự động xác định và giải phóng bộ nhớ của các đối tượng không còn được tham chiếu đến.
  • D. Garbage collection chỉ hoạt động khi bộ nhớ hệ thống gần đầy.

Câu 7: Kiểu dữ liệu nào sau đây KHÔNG phải là kiểu dữ liệu nguyên thủy (primitive data type) trong Java?

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

Câu 8: Ngoại lệ (Exception) "NullPointerException" thường xảy ra khi nào trong Java?

  • A. Khi truy cập một phần tử mảng vượt quá chỉ số cho phép.
  • B. Khi cố gắng truy cập hoặc thao tác trên một biến tham chiếu đối tượng có giá trị null.
  • C. Khi thực hiện phép chia cho 0.
  • D. Khi chuyển đổi một chuỗi không hợp lệ sang số.

Câu 9: Từ khóa "final" có thể được sử dụng với biến, phương thức và lớp trong Java. Ý nghĩa của "final" khi sử dụng với một lớp là gì?

  • A. Lớp đó trở thành lớp trừu tượng (abstract).
  • B. Không thể tạo đối tượng (instance) từ lớp đó.
  • C. Lớp đó không thể được kế thừa (subclass).
  • D. Các phương thức trong lớp đó không thể bị ghi đè (override).

Câu 10: Cho đoạn mã sau, điều gì xảy ra khi biên dịch và chạy?
```java
public class TypeCasting {
public static void main(String[] args) {
double d = 10.5;
int i = d;
System.out.println(i);
}
}
```

  • A. Chương trình biên dịch và in ra 10.5.
  • B. Chương trình biên dịch và in ra 11.
  • C. Chương trình biên dịch và in ra 10.
  • D. Lỗi biên dịch vì không thể ép kiểu ngầm định từ double sang int.

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

  • A. Duyệt qua các phần tử của một mảng hoặc collection.
  • B. Thực hiện lặp với số lần biết trước.
  • C. Lặp cho đến khi một điều kiện sai.
  • D. Tạo vòng lặp vô hạn.

Câu 12: Phương thức `substring(int beginIndex, int endIndex)` của lớp String trong Java trả về chuỗi con như thế nào?

  • A. Chuỗi con bắt đầu từ `beginIndex` và kết thúc ở `endIndex` (bao gồm cả hai chỉ số).
  • B. Chuỗi con bắt đầu từ `beginIndex` và kết thúc ở `endIndex - 1` (không bao gồm `endIndex`).
  • C. Chuỗi con bắt đầu từ `beginIndex + 1` và kết thúc ở `endIndex` (bao gồm cả hai chỉ số).
  • D. Chuỗi con bắt đầu từ `beginIndex + 1` và kết thúc ở `endIndex - 1` (không bao gồm cả hai chỉ số).

Câu 13: Trong Java, từ khóa `static` được sử dụng để khai báo biến và phương thức thuộc về lớp chứ không phải đối tượng cụ thể. Điều này có nghĩa là gì?

  • A. Biến và phương thức static chỉ có thể được truy cập từ bên trong lớp chứa chúng.
  • B. Biến static được khởi tạo lại mỗi khi một đối tượng của lớp được tạo ra.
  • C. Phương thức static không thể truy cập các biến thành viên (non-static) của lớp.
  • D. Tất cả các đối tượng của lớp chia sẻ cùng một bản sao của biến static và có thể gọi phương thức static trực tiếp qua tên lớp.

Câu 14: Cho đoạn mã sau, kết quả in ra là gì?
```java
public class StringBuilderExample {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder(

  • A. JavaProgramming
  • B. Java-Programming
  • C. Java - Programming
  • D. Java -Programming

Câu 15: Nguyên tắc "Encapsulation" (tính đóng gói) trong OOP Java nhằm mục đích chính là gì?

  • A. Tăng hiệu suất thực thi của chương trình.
  • B. Ẩn giấu thông tin và bảo vệ dữ liệu bên trong đối tượng khỏi sự truy cập và sửa đổi trực tiếp từ bên ngoài.
  • C. Cho phép đa kế thừa trong Java.
  • D. Đơn giản hóa việc tạo đối tượng.

Câu 16: Phương thức `parseInt()` thuộc lớp nào và dùng để làm gì?

  • A. Lớp `Integer`, dùng để chuyển đổi chuỗi thành số nguyên.
  • B. Lớp `String`, dùng để chuyển đổi số nguyên thành chuỗi.
  • C. Lớp `Scanner`, dùng để đọc số nguyên từ đầu vào.
  • D. Lớp `System`, dùng để in số nguyên ra màn hình.

Câu 17: Cho đoạn mã sau, kết quả in ra là gì?
```java
public class ArrayExample {
public static void main(String[] args) {
int[] arr = new int[5];
System.out.println(arr[5]);
}
}
```

  • A. 0
  • B. 5
  • C. Lỗi `ArrayIndexOutOfBoundsException` khi chạy chương trình.
  • D. Chương trình biên dịch thành công nhưng không in ra gì.

Câu 18: Sự khác biệt chính giữa `ArrayList` và `LinkedList` trong Java Collections Framework là gì?

  • A. `ArrayList` nhanh hơn trong việc thêm/xóa phần tử ở đầu danh sách, `LinkedList` nhanh hơn trong truy cập ngẫu nhiên.
  • B. Không có sự khác biệt về hiệu suất, chỉ khác nhau về cú pháp sử dụng.
  • C. `ArrayList` sử dụng bộ nhớ hiệu quả hơn `LinkedList`.
  • D. `ArrayList` dựa trên mảng động, truy cập phần tử nhanh (O(1)), thêm/xóa ở giữa/đầu chậm. `LinkedList` dựa trên danh sách liên kết, thêm/xóa nhanh (O(1)), truy cập chậm (O(n)).

Câu 19: Trong Java, phương thức `main` phải được khai báo với từ khóa `public static void`. Giải thích ý nghĩa của từ khóa `static` trong khai báo này.

  • A. `static` cho phép phương thức `main` được ghi đè (override) trong lớp con.
  • B. `static` cho phép JVM gọi phương thức `main` trực tiếp thông qua tên lớp mà không cần tạo đối tượng.
  • C. `static` đảm bảo phương thức `main` luôn chạy đầu tiên khi chương trình khởi động.
  • D. `static` giúp tối ưu hiệu suất thực thi của phương thức `main`.

Câu 20: Cho đoạn mã sau, kết quả in ra là gì?
```java
public class IncrementExample {
public static void main(String[] args) {
int x = 5;
int y = x++;
System.out.println(

  • A. x = 5, y = 5
  • B. x = 5, y = 6
  • C. x = 6, y = 5
  • D. x = 6, y = 6

Câu 21: Để đọc dữ liệu từ một file văn bản trong Java, lớp nào thường được sử dụng?

  • A. `BufferedReader` hoặc `Scanner` kết hợp với `FileReader`.
  • B. `PrintWriter` hoặc `FileWriter`.
  • C. `ObjectInputStream` hoặc `ObjectOutputStream`.
  • D. `FileInputStream` hoặc `FileOutputStream`.

Câu 22: Trong xử lý ngoại lệ (exception handling) của Java, khối lệnh `finally` có vai trò gì?

  • A. Chỉ được thực thi khi có ngoại lệ xảy ra trong khối `try`.
  • B. Chỉ được thực thi khi không có ngoại lệ xảy ra trong khối `try`.
  • C. Được thực thi trước khối `catch`.
  • D. Luôn được thực thi sau khối `try` và `catch`, bất kể có ngoại lệ xảy ra hay không, thường dùng để giải phóng tài nguyên.

Câu 23: Cho đoạn mã sau, kết quả in ra là gì?
```java
public class BooleanExample {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println(a && (b = true));
System.out.println(b);
}
}
```

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

Câu 24: Phương thức `hashCode()` và `equals()` có mối quan hệ như thế nào trong Java khi làm việc với các cấu trúc dữ liệu như `HashMap` và `HashSet`?

  • A. Không có mối quan hệ, chúng là hai phương thức độc lập.
  • B. Nếu `hashCode()` của hai đối tượng bằng nhau thì `equals()` cũng phải trả về true.
  • C. Nếu `equals()` của hai đối tượng trả về true thì `hashCode()` của chúng phải trả về cùng một giá trị.
  • D. Nếu `hashCode()` của hai đối tượng khác nhau thì `equals()` cũng phải trả về false.

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

  • A. Khởi tạo trạng thái ban đầu cho đối tượng khi nó được tạo ra.
  • B. Giải phóng bộ nhớ khi đối tượng không còn được sử dụng.
  • C. Định nghĩa hành vi của đối tượng.
  • D. Khai báo các thuộc tính của đối tượng.

Câu 26: Cho đoạn mã sau, kết quả in ra là gì?
```java
public class TernaryOperator {
public static void main(String[] args) {
int age = 15;
String message = (age >= 18) ?

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

Câu 27: Phương thức `toString()` được định nghĩa trong lớp `Object` và thường được ghi đè (override) trong các lớp khác. Mục đích của việc ghi đè phương thức `toString()` là gì?

  • A. Để so sánh hai đối tượng có bằng nhau hay không.
  • B. Để chuyển đổi đối tượng thành một kiểu dữ liệu khác.
  • C. Để trả về một chuỗi đại diện cho đối tượng, giúp việc in ấn và debug dễ dàng hơn.
  • D. Để tạo bản sao của đối tượng.

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

  • A. Tăng hiệu suất biên dịch chương trình.
  • B. Giảm kích thước file thực thi.
  • C. Tăng tính bảo mật cho ứng dụng.
  • D. Tổ chức và quản lý các lớp, tránh xung đột tên và tạo không gian tên.

Câu 29: Cho đoạn mã sau, kết quả in ra là gì?
```java
public class LoopExample {
public static void main(String[] args) {
for (int i = 0; i < 5; ++i) { if (i == 3) { continue; } System.out.print(i +

  • A. 0 1 2 4
  • B. 0 1 2 3 4
  • C. 0 1 2
  • D. 1 2 4

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

  • A. Thay thế cho comment (chú thích) thông thường trong code.
  • B. Cung cấp metadata (dữ liệu về dữ liệu) cho compiler và JVM, hỗ trợ kiểm tra lỗi tại thời điểm biên dịch và runtime.
  • C. Tăng tốc độ thực thi của chương trình.
  • D. Giảm độ phức tạp của mã nguồn.

1 / 30

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

Tags: Bộ đề 1

Câu 1: Cho đoạn mã Java sau:
```java
public class Example {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
int sum = 0;
for (int number : numbers) {
if (number % 2 == 0) {
sum += number;
}
}
System.out.println(sum);
}
}
```
Đoạn mã trên in ra giá trị nào?

2 / 30

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

Tags: Bộ đề 1

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

3 / 30

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

Tags: Bộ đề 1

Câu 3: Trong lập trình hướng đối tượng Java, 'tính đa hình' (polymorphism) mang lại lợi ích chính nào sau đây?

4 / 30

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

Tags: Bộ đề 1

Câu 4: Khi nào thì nên sử dụng giao diện (interface) thay vì lớp trừu tượng (abstract class) trong thiết kế lớp Java?

5 / 30

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

Tags: Bộ đề 1

Câu 5: Cho đoạn code Java sau, kết quả in ra màn hình là gì?
```java
public class ScopeExample {
static int x = 10;
public static void main(String[] args) {
int x = 20;
System.out.println(x);
printX();
}
static void printX() {
System.out.println(x);
}
}
```

6 / 30

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

Tags: Bộ đề 1

Câu 6: Trong Java, cơ chế 'garbage collection' (thu gom rác) hoạt động như thế nào?

7 / 30

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

Tags: Bộ đề 1

Câu 7: Kiểu dữ liệu nào sau đây KHÔNG phải là kiểu dữ liệu nguyên thủy (primitive data type) trong Java?

8 / 30

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

Tags: Bộ đề 1

Câu 8: Ngoại lệ (Exception) 'NullPointerException' thường xảy ra khi nào trong Java?

9 / 30

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

Tags: Bộ đề 1

Câu 9: Từ khóa 'final' có thể được sử dụng với biến, phương thức và lớp trong Java. Ý nghĩa của 'final' khi sử dụng với một lớp là gì?

10 / 30

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

Tags: Bộ đề 1

Câu 10: Cho đoạn mã sau, điều gì xảy ra khi biên dịch và chạy?
```java
public class TypeCasting {
public static void main(String[] args) {
double d = 10.5;
int i = d;
System.out.println(i);
}
}
```

11 / 30

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

Tags: Bộ đề 1

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

12 / 30

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

Tags: Bộ đề 1

Câu 12: Phương thức `substring(int beginIndex, int endIndex)` của lớp String trong Java trả về chuỗi con như thế nào?

13 / 30

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

Tags: Bộ đề 1

Câu 13: Trong Java, từ khóa `static` được sử dụng để khai báo biến và phương thức thuộc về lớp chứ không phải đối tượng cụ thể. Điều này có nghĩa là gì?

14 / 30

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

Tags: Bộ đề 1

Câu 14: Cho đoạn mã sau, kết quả in ra là gì?
```java
public class StringBuilderExample {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("Java");
sb.append(" Programming");
sb.insert(4, " -");
System.out.println(sb.toString());
}
}
```

15 / 30

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

Tags: Bộ đề 1

Câu 15: Nguyên tắc 'Encapsulation' (tính đóng gói) trong OOP Java nhằm mục đích chính là gì?

16 / 30

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

Tags: Bộ đề 1

Câu 16: Phương thức `parseInt()` thuộc lớp nào và dùng để làm gì?

17 / 30

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

Tags: Bộ đề 1

Câu 17: Cho đoạn mã sau, kết quả in ra là gì?
```java
public class ArrayExample {
public static void main(String[] args) {
int[] arr = new int[5];
System.out.println(arr[5]);
}
}
```

18 / 30

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

Tags: Bộ đề 1

Câu 18: Sự khác biệt chính giữa `ArrayList` và `LinkedList` trong Java Collections Framework là gì?

19 / 30

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

Tags: Bộ đề 1

Câu 19: Trong Java, phương thức `main` phải được khai báo với từ khóa `public static void`. Giải thích ý nghĩa của từ khóa `static` trong khai báo này.

20 / 30

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

Tags: Bộ đề 1

Câu 20: Cho đoạn mã sau, kết quả in ra là gì?
```java
public class IncrementExample {
public static void main(String[] args) {
int x = 5;
int y = x++;
System.out.println("x = " + x + ", y = " + y);
}
}
```

21 / 30

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

Tags: Bộ đề 1

Câu 21: Để đọc dữ liệu từ một file văn bản trong Java, lớp nào thường được sử dụng?

22 / 30

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

Tags: Bộ đề 1

Câu 22: Trong xử lý ngoại lệ (exception handling) của Java, khối lệnh `finally` có vai trò gì?

23 / 30

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

Tags: Bộ đề 1

Câu 23: Cho đoạn mã sau, kết quả in ra là gì?
```java
public class BooleanExample {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println(a && (b = true));
System.out.println(b);
}
}
```

24 / 30

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

Tags: Bộ đề 1

Câu 24: Phương thức `hashCode()` và `equals()` có mối quan hệ như thế nào trong Java khi làm việc với các cấu trúc dữ liệu như `HashMap` và `HashSet`?

25 / 30

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

Tags: Bộ đề 1

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

26 / 30

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

Tags: Bộ đề 1

Câu 26: Cho đoạn mã sau, kết quả in ra là gì?
```java
public class TernaryOperator {
public static void main(String[] args) {
int age = 15;
String message = (age >= 18) ? "Adult" : "Minor";
System.out.println(message);
}
}
```

27 / 30

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

Tags: Bộ đề 1

Câu 27: Phương thức `toString()` được định nghĩa trong lớp `Object` và thường được ghi đè (override) trong các lớp khác. Mục đích của việc ghi đè phương thức `toString()` là gì?

28 / 30

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

Tags: Bộ đề 1

Câu 28: Trong Java, 'package' (gói) đượ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ộ đề 1

Câu 29: Cho đoạn mã sau, kết quả in ra là gì?
```java
public class LoopExample {
public static void main(String[] args) {
for (int i = 0; i < 5; ++i) { if (i == 3) { continue; } System.out.print(i + " "); } } } ```

30 / 30

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

Tags: Bộ đề 1

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

Xem kết quả