JavaScript is required

Đoạn mã nào sau đây in ra màn hình chữ "Equal":

A.
int x = 100;
float y = 100.0F;
if (x == y) {
 System.out.println("Equal");
}

B.
Integer x = new Integer(100);
Integer y = new Integer(100);
if (x == y) {
 System.out.println("Equal");
}

C.
String x = "100";
String y = "100";
if (x == y) {
 System.out.println("Equal");
}

D.

Câu A và C đúng

Trả lời:

Đáp án đúng: D


Đáp án A đúng vì so sánh giữa `int` và `float` sử dụng `==` sẽ so sánh giá trị. Trong trường hợp này, `x` là 100 và `y` là 100.0, vì vậy điều kiện `x == y` là đúng và "Equal" được in ra. Đáp án B sai vì khi so sánh hai đối tượng `Integer` bằng `==`, ta đang so sánh tham chiếu (địa chỉ) của chúng trong bộ nhớ, chứ không phải giá trị. Trong trường hợp này, `x` và `y` là hai đối tượng `Integer` khác nhau, mặc dù có cùng giá trị là 100, do đó `x == y` sẽ trả về `false`. Đáp án C đúng vì `String` là một immutable object. Khi `x = "100"` và `y = "100"`, cả hai biến `x` và `y` có thể trỏ đến cùng một đối tượng chuỗi trong string pool, do đó `x == y` có thể trả về `true`. Tuy nhiên, điều này không đảm bảo, và việc so sánh chuỗi nên sử dụng phương thức `.equals()` để đảm bảo so sánh giá trị, không phải tham chiếu. Vì đáp án A đúng và đáp án C có thể đúng hoặc sai, đáp án D sai.

Tổng hợp 350 câu hỏi trắc nghiệm môn lập trình mạng có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức.


50 câu hỏi 60 phút

Câu hỏi liên quan