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

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

Bài Tập, Đề Thi Trắc Nghiệm Online - Môn Java - Đề 05 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 lập trình hướng đối tượng Java, khái niệm nào cho phép một lớp con (subclass) kế thừa các thuộc tính và phương thức từ lớp cha (superclass) đồng thời có thể định nghĩa lại các phương thức đó cho phù hợp với ngữ cảnh của lớp con?

  • A. Tính đóng gói (Encapsulation)
  • B. Tính trừu tượng (Abstraction)
  • C. Tính đa hình (Polymorphism)
  • D. Tính trừu tượng hóa dữ liệu (Data Abstraction)

Câu 2: Cho đoạn mã Java sau:
```java
public class Vehicle {
public void run() {
System.out.println(

  • A. Vehicle is running
  • B. Car is running faster
  • C. Lỗi biên dịch do không thể gán Car cho Vehicle
  • D. Lỗi runtime do phương thức run() bị ghi đè

Câu 3: Phát biểu nào sau đây mô tả đúng nhất về "interface" trong Java?

  • A. Interface là một lớp trừu tượng đặc biệt chỉ chứa các thuộc tính tĩnh.
  • B. Interface là một lớp chỉ chứa các phương thức có thân hàm (method body).
  • C. Interface có thể chứa cả thuộc tính và phương thức có thân hàm.
  • D. Interface là một bản thiết kế (blueprint) cho các lớp, định nghĩa các phương thức mà lớp thực thi interface phải cung cấp.

Câu 4: Trong Java, từ khóa "static" được sử dụng để khai báo thành viên tĩnh (static members) của lớp. Điều gì KHÔNG đúng về thành viên tĩnh?

  • A. Thành viên tĩnh được chia sẻ bởi tất cả các đối tượng của lớp.
  • B. Thành viên tĩnh có thể được truy cập trực tiếp thông qua tên lớp mà không cần tạo đối tượng.
  • C. Mỗi đối tượng của lớp có một bản sao riêng của các biến tĩnh.
  • D. Phương thức tĩnh không thể truy cập trực tiếp các biến instance (không tĩnh) của lớp.

Câu 5: 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. Index out of bounds
    Finally block
  • B. 5
    Finally block
  • C. Index out of bounds
  • D. 5

Câu 6: Trong Java Collections Framework, interface nào định nghĩa một tập hợp các phần tử không có thứ tự và không chứa phần tử trùng lặp?

  • A. List
  • B. Set
  • C. Map
  • D. Queue

Câu 7: Phương thức nào sau đây của lớp String được sử dụng để so sánh hai chuỗi mà bỏ qua sự khác biệt về chữ hoa chữ thường?

  • A. compareTo()
  • B. equals()
  • C. equalsIgnoreCase()
  • D. contains()

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

  • A. References are equal
    Values are equal
  • B. References are not equal
    Values are not equal
  • C. References are equal
    Values are not equal
  • D. References are not equal
    Values are equal

Câu 9: Trong Java, cơ chế nào cho phép một lớp có thể được tạo ra từ một lớp đã tồn tại, thừa hưởng các thuộc tính và phương thức của lớp đó?

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

Câu 10: Kiểu dữ liệu nào trong Java được sử dụng để lưu trữ một ký tự Unicode duy nhất?

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

Câu 11: Cho đoạn mã Java sau:
```java
int x = 5;
int y = 10;

// Toán tử điều kiện (ternary operator)
int max = (x > y) ? x : y;
System.out.println(max);
```
Đoạn mã trên sẽ in ra giá trị nào?

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

Câu 12: Trong Java, từ khóa nào được sử dụng để gọi constructor của lớp cha từ constructor của lớp con?

  • A. this
  • B. parent
  • C. super
  • D. base

Câu 13: Phương thức `parseInt()` thuộc lớp nào trong Java và chức năng của nó là gì?

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

Câu 14: Cho đoạn mã Java sau:
```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 3 4
  • B. 0 1 2
  • C. 0 1 2 4
  • D. 0 1 2 3

Câu 15: Trong Java, annotation `@Override` được sử dụng để làm gì?

  • A. Chỉ ra rằng một phương thức trong lớp con đang ghi đè một phương thức cùng tên từ lớp cha.
  • B. Đánh dấu một phương thức là tĩnh (static).
  • C. Khai báo một biến là hằng số (constant).
  • D. Cho phép thực thi đa luồng (multithreading) trên phương thức.

Câu 16: Cho đoạn mã Java sau:
```java
public class ScopeExample {
int instanceVar = 10;
static int staticVar = 20;

public void method() {
int localVar = 30;
System.out.println(instanceVar + staticVar + localVar);
}

public static void main(String[] args) {
ScopeExample obj = new ScopeExample();
obj.method();
}}
```
Đoạn mã trên sẽ in ra giá trị nào?

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

Câu 17: Trong Java, "garbage collection" là gì và nó hoạt động như thế nào?

  • A. Một kỹ thuật quản lý bộ nhớ thủ công, trong đó lập trình viên phải tự giải phóng bộ nhớ khi không còn sử dụng.
  • B. Một quá trình biên dịch mã nguồn Java thành mã máy.
  • C. Một cơ chế tự động quản lý bộ nhớ của JVM, giải phóng bộ nhớ mà các đối tượng không còn được tham chiếu đến.
  • D. Một loại lỗi runtime xảy ra khi chương trình cố gắng truy cập vào vùng nhớ không hợp lệ.

Câu 18: Cho đoạn mã Java sau:
```java
Integer num1 = 100;
Integer num2 = 100;
Integer num3 = 500;
Integer num4 = 500;

System.out.println(num1 == num2);
System.out.println(num3 == num4);
```
Đoạn mã trên sẽ in ra kết quả gì?

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

Câu 19: Trong lập trình đa luồng (multithreading) Java, từ khóa "synchronized" được sử dụng để làm gì?

  • A. Tạo ra một luồng mới.
  • B. Kiểm soát quyền truy cập đồng thời vào một khối mã hoặc phương thức, đảm bảo tính đồng bộ.
  • C. Đình chỉ thực thi của một luồng hiện tại.
  • D. Kết thúc một luồng đang chạy.

Câu 20: Interface `Comparable` trong Java được sử dụng để làm gì?

  • A. Để tạo ra một bản sao của đối tượng.
  • B. Để kiểm tra xem hai đối tượng có thuộc cùng một lớp hay không.
  • C. Để định nghĩa cách các đối tượng của một lớp có thể được so sánh với nhau, phục vụ cho việc sắp xếp.
  • D. Để chuyển đổi một đối tượng thành một kiểu dữ liệu khác.

Câu 21: Cho đoạn mã Java sau:
```java
public class StringBuilderExample {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder(

  • A. Java Programming
  • B. Java Programming
  • C. Programming Java
  • D. Lỗi runtime

Câu 22: Trong Java, package nào chứa các lớp và interface liên quan đến nhập xuất dữ liệu (I/O)?

  • A. java.net
  • B. java.io
  • C. java.util
  • D. java.lang

Câu 23: Phương thức `equals()` và `hashCode()` có mối quan hệ như thế nào trong Java khi sử dụng với các Collections như HashMap và HashSet?

  • A. Không có mối quan hệ nào, chúng là hai phương thức độc lập.
  • B. `equals()` và `hashCode()` phải luôn trả về giá trị khác nhau.
  • C. Nếu `hashCode()` trả về cùng giá trị, `equals()` cũng phải trả về true.
  • D. 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âu 24: Cho đoạn mã Java sau:
```java
List names = new ArrayList<>();
names.add(

  • A. 3
  • B. 0
  • C. 2
  • D. Lỗi runtime

Câu 25: Trong Java, "autoboxing" là quá trình chuyển đổi tự động giữa kiểu dữ liệu nguyên thủy (primitive type) và lớp wrapper tương ứng. Phát biểu nào sau đây là đúng về autoboxing?

  • A. Autoboxing là quá trình tự động chuyển đổi từ kiểu dữ liệu nguyên thủy sang đối tượng của lớp wrapper tương ứng.
  • B. Autoboxing là quá trình tự động chuyển đổi từ đối tượng của lớp wrapper sang kiểu dữ liệu nguyên thủy.
  • C. Autoboxing là cơ chế quản lý bộ nhớ tự động trong Java.
  • D. Autoboxing là một loại ngoại lệ xảy ra khi chuyển đổi kiểu dữ liệu.

Câu 26: Cho đoạn mã Java sau:
```java
int a = 10;
int b = 20;

swap(a, b);
System.out.println(

  • A. a = 20, b = 10
  • B. a = 10, b = 20
  • C. Lỗi biên dịch do phương thức swap không trả về giá trị.
  • D. Lỗi runtime do truy cập biến cục bộ ngoài phạm vi.

Câu 27: Trong Java, "final" là một từ khóa đa năng. Khi được sử dụng với một biến instance, "final" có ý nghĩa gì?

  • A. Biến final có thể được truy cập từ bất kỳ đâu trong chương trình.
  • B. Giá trị của biến final có thể được thay đổi sau khi khởi tạo.
  • C. Biến final phải được khởi tạo giá trị tại thời điểm khai báo hoặc trong constructor và giá trị đó không thể thay đổi sau đó.
  • D. Biến final chỉ có thể được sử dụng trong các phương thức tĩnh.

Câu 28: Cho đoạn mã Java sau:
```java
public class ExceptionTest {
public static void main(String[] args) {
try {
int result = divide(10, 0);
System.out.println(

  • A. Result: Infinity
  • B. Result: 0
  • C. Lỗi runtime không được xử lý.
  • D. Error: / by zero

Câu 29: Trong Java, Stream API được giới thiệu từ phiên bản nào và mục đích chính của nó là gì?

  • A. Java 5, để quản lý bộ nhớ hiệu quả hơn.
  • B. Java 8, để cung cấp một cách tiếp cận hàm (functional) để xử lý dữ liệu kiểu collection.
  • C. Java 7, để cải thiện hiệu năng của máy ảo JVM.
  • D. Java 9, để tăng cường tính bảo mật của ứng dụng.

Câu 30: Cho đoạn mã Java sử dụng lambda expression sau:
```java
interface StringOperation {
String operate(String str);
}

public class LambdaExample {
public static void main(String[] args) {
StringOperation toUpperCase = s -> s.toUpperCase();
System.out.println(toUpperCase.operate(

  • A. hello
  • B. Hello
  • C. HELLO
  • D. Lỗi biên dịch do sai cú pháp lambda

1 / 30

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

Tags: Bộ đề 5

Câu 1: Trong lập trình hướng đối tượng Java, khái niệm nào cho phép một lớp con (subclass) kế thừa các thuộc tính và phương thức từ lớp cha (superclass) đồng thời có thể định nghĩa lại các phương thức đó cho phù hợp với ngữ cảnh của lớp con?

2 / 30

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

Tags: Bộ đề 5

Câu 2: Cho đoạn mã Java sau:
```java
public class Vehicle {
public void run() {
System.out.println("Vehicle is running");
}
}

public class Car extends Vehicle {
@Override
public void run() {
System.out.println("Car is running faster");
}
}

public class Main {
public static void main(String[] args) {
Vehicle v = new Car();
v.run();
}}
```
Đ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ộ đề 5

Câu 3: Phát biểu nào sau đây mô tả đúng nhất về 'interface' trong Java?

4 / 30

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

Tags: Bộ đề 5

Câu 4: Trong Java, từ khóa 'static' được sử dụng để khai báo thành viên tĩnh (static members) của lớp. Điều gì KHÔNG đúng về thành viên tĩnh?

5 / 30

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

Tags: Bộ đề 5

Câu 5: 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("Index out of bounds");
} finally {
System.out.println("Finally block");
}
}}
```
Đoạn mã trên sẽ in ra kết quả gì?

6 / 30

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

Tags: Bộ đề 5

Câu 6: Trong Java Collections Framework, interface nào định nghĩa một tập hợp các phần tử không có thứ tự và không chứa phần tử trùng lặp?

7 / 30

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

Tags: Bộ đề 5

Câu 7: Phương thức nào sau đây của lớp String được sử dụng để so sánh hai chuỗi mà bỏ qua sự khác biệt về chữ hoa chữ thường?

8 / 30

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

Tags: Bộ đề 5

Câu 8: Cho đoạn mã Java sau:
```java
String str1 = "Hello";
String str2 = new String("Hello");

if (str1 == str2) {
System.out.println("References are equal");
} else {
System.out.println("References are not equal");
}

if (str1.equals(str2)) {
System.out.println("Values are equal");
} else {
System.out.println("Values are not equal");
}
```
Đoạn mã trên sẽ in ra kết quả gì?

9 / 30

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

Tags: Bộ đề 5

Câu 9: Trong Java, cơ chế nào cho phép một lớp có thể được tạo ra từ một lớp đã tồn tại, thừa hưởng các thuộc tính và phương thức của lớp đó?

10 / 30

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

Tags: Bộ đề 5

Câu 10: Kiểu dữ liệu nào trong Java được sử dụng để lưu trữ một ký tự Unicode duy nhất?

11 / 30

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

Tags: Bộ đề 5

Câu 11: Cho đoạn mã Java sau:
```java
int x = 5;
int y = 10;

// Toán tử điều kiện (ternary operator)
int max = (x > y) ? x : y;
System.out.println(max);
```
Đoạn mã trên sẽ in ra giá trị nào?

12 / 30

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

Tags: Bộ đề 5

Câu 12: Trong Java, từ khóa nào được sử dụng để gọi constructor của lớp cha từ constructor của lớp con?

13 / 30

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

Tags: Bộ đề 5

Câu 13: Phương thức `parseInt()` thuộc lớp nào trong Java và chức năng của nó là gì?

14 / 30

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

Tags: Bộ đề 5

Câu 14: Cho đoạn mã Java sau:
```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 + " "); } }} ``` Đoạn mã trên sẽ in ra kết quả gì?

15 / 30

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

Tags: Bộ đề 5

Câu 15: Trong Java, annotation `@Override` được sử dụng để làm gì?

16 / 30

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

Tags: Bộ đề 5

Câu 16: Cho đoạn mã Java sau:
```java
public class ScopeExample {
int instanceVar = 10;
static int staticVar = 20;

public void method() {
int localVar = 30;
System.out.println(instanceVar + staticVar + localVar);
}

public static void main(String[] args) {
ScopeExample obj = new ScopeExample();
obj.method();
}}
```
Đoạn mã trên sẽ in ra giá trị nào?

17 / 30

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

Tags: Bộ đề 5

Câu 17: Trong Java, 'garbage collection' là gì và nó hoạt động như thế nào?

18 / 30

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

Tags: Bộ đề 5

Câu 18: Cho đoạn mã Java sau:
```java
Integer num1 = 100;
Integer num2 = 100;
Integer num3 = 500;
Integer num4 = 500;

System.out.println(num1 == num2);
System.out.println(num3 == num4);
```
Đoạn mã trên sẽ in ra kết quả gì?

19 / 30

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

Tags: Bộ đề 5

Câu 19: Trong lập trình đa luồng (multithreading) Java, từ khóa 'synchronized' được sử dụng để làm gì?

20 / 30

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

Tags: Bộ đề 5

Câu 20: Interface `Comparable` trong Java đượ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ộ đề 5

Câu 21: Cho đoạn mã Java sau:
```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());
}}
```
Đoạn mã trên sẽ in ra kết quả gì?

22 / 30

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

Tags: Bộ đề 5

Câu 22: Trong Java, package nào chứa các lớp và interface liên quan đến nhập xuất dữ liệu (I/O)?

23 / 30

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

Tags: Bộ đề 5

Câu 23: Phương thức `equals()` và `hashCode()` có mối quan hệ như thế nào trong Java khi sử dụng với các Collections như HashMap và HashSet?

24 / 30

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

Tags: Bộ đề 5

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

names.remove(1);
System.out.println(names.size());
```
Đoạn mã trên sẽ in ra kích thước của danh sách 'names' là bao nhiêu?

25 / 30

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

Tags: Bộ đề 5

Câu 25: Trong Java, 'autoboxing' là quá trình chuyển đổi tự động giữa kiểu dữ liệu nguyên thủy (primitive type) và lớp wrapper tương ứng. Phát biểu nào sau đây là đúng về autoboxing?

26 / 30

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

Tags: Bộ đề 5

Câu 26: Cho đoạn mã Java sau:
```java
int a = 10;
int b = 20;

swap(a, b);
System.out.println("a = " + a + ", b = " + b);

public static void swap(int x, int y) {
int temp = x;
x = y;
y = temp;
}
```
Đoạn mã trên sẽ in ra giá trị của 'a' và 'b' là bao nhiêu?

27 / 30

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

Tags: Bộ đề 5

Câu 27: Trong Java, 'final' là một từ khóa đa năng. Khi được sử dụng với một biến instance, 'final' có ý nghĩa gì?

28 / 30

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

Tags: Bộ đề 5

Câu 28: Cho đoạn mã Java sau:
```java
public class ExceptionTest {
public static void main(String[] args) {
try {
int result = divide(10, 0);
System.out.println("Result: " + result);
} catch (ArithmeticException e) {
System.out.println("Error: " + e.getMessage());
}
}

public static int divide(int a, int b) throws ArithmeticException {
if (b == 0) {
throw new ArithmeticException("Cannot divide by zero");
}
return a / b;
}}
```
Đoạn mã trên sẽ in ra kết quả gì?

29 / 30

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

Tags: Bộ đề 5

Câu 29: Trong Java, Stream API được giới thiệu từ phiên bản nào và mục đích chính của nó là gì?

30 / 30

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

Tags: Bộ đề 5

Câu 30: Cho đoạn mã Java sử dụng lambda expression sau:
```java
interface StringOperation {
String operate(String str);
}

public class LambdaExample {
public static void main(String[] args) {
StringOperation toUpperCase = s -> s.toUpperCase();
System.out.println(toUpperCase.operate("hello"));
}}
```
Đoạn mã trên sẽ in ra kết quả gì?

Xem kết quả