JavaScript is required

Cho chương trình sau đây. Hãy cho biết kết quả sau khi thực thi chương trình?
class tbt {
public static void main(String args[]) {
System.out.println("In first main()");
}
public static void main(char args[]) {
System.out.println(''
a '');
}
}

A.

Biên dịch có lỗi và đưa ra lỗi "Duplicate main() method declare"

B.

Biên dịch thành công nhưng sẽ đưa ra lỗi xảy ra ngoại lệ khi chạy

C.

Biên dịch thành công và in ra màn hình "In first main()"

D.

Biên dịch thành công và in ra màn hình "a"

Trả lờ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()".

Câu hỏi liên quan