Đoạn mã sau sẽ in ra giá như thế nào nếu x và y là kiểu int, x=10 và y=5
System.out.println(""+x+y);
System.out.println(""+x+y);
Trả lời:
Đáp án đúng: D
Trong Java, khi toán tử `+` được sử dụng với một chuỗi (String), nó sẽ thực hiện phép nối chuỗi thay vì phép cộng số học. Trong đoạn mã `System.out.println(""+x+y);`, đầu tiên một chuỗi rỗng `""` được nối với giá trị của `x` (là 10). Kết quả là một chuỗi `"10"`. Sau đó, chuỗi `"10"` này lại được nối với giá trị của `y` (là 5). Kết quả cuối cùng là chuỗi `"105"`, và đây là giá trị được in ra màn hình.
Câu hỏi liên quan
Lời giải:
Đáp án đúng: D
Trong Java, từ khóa `static` có thể được áp dụng cho các thuộc tính (data field), phương thức (method) và các khối (static block). Tuy nhiên, từ khóa `static` không thể được áp dụng trực tiếp cho một lớp (class) bên trong một lớp khác (inner class) trừ khi lớp đó là một inner class static. Vì vậy, đáp án A là đáp án đúng.
Lời giải:
Đáp án đúng: A
Trong đoạn mã `short s = 5L;`, chúng ta đang cố gắng gán một giá trị kiểu `long` (5L) cho một biến kiểu `short`. Trong Java (và nhiều ngôn ngữ khác), `short` là một kiểu dữ liệu số nguyên nhỏ hơn `long`.
Việc gán một giá trị lớn hơn (kiểu `long`) cho một biến nhỏ hơn (kiểu `short`) có thể gây ra mất mát dữ liệu hoặc tràn số, vì kiểu `short` có thể không đủ chỗ để chứa toàn bộ giá trị của kiểu `long`. Tuy nhiên, trong trường hợp này, giá trị 5L (5 kiểu long) nằm trong phạm vi biểu diễn của kiểu short. Vì vậy, trình biên dịch Java sẽ tự động thực hiện thu hẹp kiểu (implicit narrowing conversion) từ long về short mà không báo lỗi biên dịch.
Dù không có lỗi biên dịch, việc thu hẹp kiểu có thể dẫn đến mất độ chính xác nếu giá trị của kiểu long vượt quá phạm vi của kiểu short. Trong trường hợp này, giá trị 5 nằm gọn trong cả hai kiểu, nhưng nếu giá trị lớn hơn phạm vi của short (-32768 đến 32767) thì sẽ có mất mát dữ liệu.
Vì vậy, đáp án chính xác nhất là D. Mất Độ Chính Xác (loss of accuracy), mặc dù trong trường hợp cụ thể này giá trị không bị mất, nhưng việc gán kiểu có nguy cơ này.
Việc gán một giá trị lớn hơn (kiểu `long`) cho một biến nhỏ hơn (kiểu `short`) có thể gây ra mất mát dữ liệu hoặc tràn số, vì kiểu `short` có thể không đủ chỗ để chứa toàn bộ giá trị của kiểu `long`. Tuy nhiên, trong trường hợp này, giá trị 5L (5 kiểu long) nằm trong phạm vi biểu diễn của kiểu short. Vì vậy, trình biên dịch Java sẽ tự động thực hiện thu hẹp kiểu (implicit narrowing conversion) từ long về short mà không báo lỗi biên dịch.
Dù không có lỗi biên dịch, việc thu hẹp kiểu có thể dẫn đến mất độ chính xác nếu giá trị của kiểu long vượt quá phạm vi của kiểu short. Trong trường hợp này, giá trị 5 nằm gọn trong cả hai kiểu, nhưng nếu giá trị lớn hơn phạm vi của short (-32768 đến 32767) thì sẽ có mất mát dữ liệu.
Vì vậy, đáp án chính xác nhất là D. Mất Độ Chính Xác (loss of accuracy), mặc dù trong trường hợp cụ thể này giá trị không bị mất, nhưng việc gán kiểu có nguy cơ này.
Lời giải:
Đáp án đúng: A
Đoạn mã sử dụng toán tử điều kiện (ternary operator) `(a > b) ? 10 : 9`.
1. `int a = 6, b = 7;`: Khai báo và khởi tạo hai biến nguyên `a` và `b` với giá trị lần lượt là 6 và 7.
2. `(a > b) ? 10 : 9`: Đây là toán tử điều kiện. Nó kiểm tra điều kiện `a > b`. Trong trường hợp này, `a` là 6 và `b` là 7, do đó `a > b` là `false`.
3. Vì điều kiện `a > b` là `false`, toán tử điều kiện sẽ trả về giá trị sau dấu hai chấm (`:`), tức là 9.
4. `System.out.println(9);`: Lệnh này in giá trị 9 ra màn hình.
Vậy kết quả in ra màn hình là 9.
1. `int a = 6, b = 7;`: Khai báo và khởi tạo hai biến nguyên `a` và `b` với giá trị lần lượt là 6 và 7.
2. `(a > b) ? 10 : 9`: Đây là toán tử điều kiện. Nó kiểm tra điều kiện `a > b`. Trong trường hợp này, `a` là 6 và `b` là 7, do đó `a > b` là `false`.
3. Vì điều kiện `a > b` là `false`, toán tử điều kiện sẽ trả về giá trị sau dấu hai chấm (`:`), tức là 9.
4. `System.out.println(9);`: Lệnh này in giá trị 9 ra màn hình.
Vậy kết quả in ra màn hình là 9.
Lời giải:
Đáp án đúng: A
Trong Java, khi so sánh hai đối tượng String bằng toán tử `==`, ta đang so sánh tham chiếu (địa chỉ) của chúng trong bộ nhớ, chứ không phải nội dung của chuỗi.
Trong đoạn code này, `"String".toString()` trả về một tham chiếu đến một đối tượng String, và `"String"` cũng là một tham chiếu đến một đối tượng String khác (có thể là một String literal trong string pool hoặc một đối tượng mới). Mặc dù cả hai đều có nội dung là "String", nhưng chúng có thể không phải là cùng một đối tượng trong bộ nhớ. Do đó, phép so sánh `==` có thể trả về `false`. Tuy nhiên, trong nhiều trường hợp, trình biên dịch có thể tối ưu hóa và sử dụng lại các String literal, dẫn đến việc hai tham chiếu này trỏ đến cùng một đối tượng. Điều này làm cho kết quả của phép so sánh `==` không nhất quán và phụ thuộc vào môi trường thực thi.
Trong trường hợp này, do không có đảm bảo rằng hai chuỗi này là cùng một đối tượng, nên kết quả so sánh bằng `==` có thể trả về `false`, dẫn đến việc in ra "Not Equal".
Trong đoạn code này, `"String".toString()` trả về một tham chiếu đến một đối tượng String, và `"String"` cũng là một tham chiếu đến một đối tượng String khác (có thể là một String literal trong string pool hoặc một đối tượng mới). Mặc dù cả hai đều có nội dung là "String", nhưng chúng có thể không phải là cùng một đối tượng trong bộ nhớ. Do đó, phép so sánh `==` có thể trả về `false`. Tuy nhiên, trong nhiều trường hợp, trình biên dịch có thể tối ưu hóa và sử dụng lại các String literal, dẫn đến việc hai tham chiếu này trỏ đến cùng một đối tượng. Điều này làm cho kết quả của phép so sánh `==` không nhất quán và phụ thuộc vào môi trường thực thi.
Trong trường hợp này, do không có đảm bảo rằng hai chuỗi này là cùng một đối tượng, nên kết quả so sánh bằng `==` có thể trả về `false`, dẫn đến việc in ra "Not Equal".
Lời giải:
Đáp án đúng: C
Trong Java, một lớp có thể có nhiều phương thức `main`, miễn là chúng có signature khác nhau (ví dụ: số lượng tham số khác nhau hoặc kiểu dữ liệu của tham số khác nhau). Khi chạy chương trình, JVM sẽ tìm phương thức `main` có signature `public static void main(String[] args)` để thực thi. Trong trường hợp này, chương trình có hai phương thức `main`, một với tham số là mảng các String (`String args[]`) và một với tham số là mảng các char (`char args[]`). Khi chương trình được chạy, JVM sẽ gọi phương thức `main` với tham số là mảng các String. Do đó, chương trình sẽ biên dịch thành công và in ra "In first main()".
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP
Lời giải:
Bạn cần đăng ký gói VIP để làm bài, xem đáp án và lời giải chi tiết không giới hạn. Nâng cấp VIP

Bộ Đồ Án Tốt Nghiệp Ngành Trí Tuệ Nhân Tạo Và Học Máy
89 tài liệu310 lượt tải

Bộ 120+ Đồ Án Tốt Nghiệp Ngành Hệ Thống Thông Tin
125 tài liệu441 lượt tải

Bộ Đồ Án Tốt Nghiệp Ngành Mạng Máy Tính Và Truyền Thông
104 tài liệu687 lượt tải

Bộ Luận Văn Tốt Nghiệp Ngành Kiểm Toán
103 tài liệu589 lượt tải

Bộ 370+ Luận Văn Tốt Nghiệp Ngành Kế Toán Doanh Nghiệp
377 tài liệu1030 lượt tải

Bộ Luận Văn Tốt Nghiệp Ngành Quản Trị Thương Hiệu
99 tài liệu1062 lượt tải
ĐĂNG KÝ GÓI THI VIP
- Truy cập hơn 100K đề thi thử và chính thức các năm
- 2M câu hỏi theo các mức độ: Nhận biết – Thông hiểu – Vận dụng
- Học nhanh với 10K Flashcard Tiếng Anh theo bộ sách và chủ đề
- Đầy đủ: Mầm non – Phổ thông (K12) – Đại học – Người đi làm
- Tải toàn bộ tài liệu trên TaiLieu.VN
- Loại bỏ quảng cáo để tăng khả năng tập trung ôn luyện
- Tặng 15 ngày khi đăng ký gói 3 tháng, 30 ngày với gói 6 tháng và 60 ngày với gói 12 tháng.
77.000 đ/ tháng