PUBLIC STATIC VOID MAIN(STRING ARGS) LÀ GÌ

Hàm main trong hầu như các ngữ điệu thiết kế chắc hẳn rằng là hàm đầu tiên mà lại bọn họ làm quen thuộc khi học 1 ngôn từ new. Nó nhập vai trò như một điểm bắt đầu (entry point) "vị trí cơ mà quyền tinh chỉnh và điều khiển được gửi từ bỏ hệ thống đến một lịch trình máy tính, cùng tại đó thì CPU vẫn truy cập vào 1 công tác hoặc một đoạn code và thực hiện xúc tiến."

Phần to hễ lực để tôi viết ra bài bác này là sau thời điểm thủ thỉ cùng với vài ba bạn bạn về những hiệ tượng trong Java, công ty chúng tôi hối hả nhận ra là tôi đã bỏ lỡ vài trang bị cơ bạn dạng, rõ ràng là hàm main. Do đó tôi sẽ thu thập những thắc mắc thú vị về chủ thể này, chúng ta hãy thử vấn đáp bọn chúng trước lúc phát âm lời giải nhé, cùng nếu như không vấn đáp được thì cũng chả sao, giải đáp vào này tôi cũng đề xuất search google hết đấy

*

1. main gồm buộc phải là một reserved từ khóa vào Java không?

Từ main này chỉ là một trong convention lấy từ phần lớn ngôn ngữ nhỏng C với C++, nó chưa hẳn là một trong những reserved từ khoá trong Java. lấy ví dụ bạn có thể đánh tên trở nên cùng với nó:

int main;

2. Hàm main có cần modifier là static không?

Hàm main cần có modifier là static làm cho thứ ảo Java hoàn toàn có thể tiện lợi tìm ra nó mà không cần phải chạy constructor của class. Hàm main cơ mà không tồn tại modifier là static đang gây nên tính mơ hồ mang đến JVM chính vì hồ hết hàm chưa phải static rất cần được được hotline trải qua constructor và JVM sẽ không còn biết cần gọi constructor của class làm sao. Nếu nó chọn 1 class thốt nhiên, rất có thể nó vẫn cần được hỗ trợ đều tsi số của constructor đó, nó sẽ không còn biết đề xuất truyền vào vật gì. Thử tưởng tượng bằng cách diệu kì nào này mà nó hoàn toàn có thể từ bỏ nhận biết cùng truyền tmê say số một phương pháp auto, thì hàm nào vào class này sẽ là entry point thực sự? Hãy hãy nhớ là main chưa phải là 1 keyword.

Bạn đang xem: Public static void main(string args) là gì

3. Tham mê số String<> args có bao giờ null được không?

The String <>args in the main method can never be null even if no arguments are passed. It is simply an empty initialized array of strings.

Tmê say số này vào hàm main ko khi nào null bao gồm cả Khi không có tham số như thế nào được truyền vào. Nó chỉ đơn giản dễ dàng là một trong những string array trống đã có được khởi sản xuất.

4. cũng có thể viết là static public void main vắt vì chưng public static void main được không?

Vị trí của modifier như public tốt static ko quan trọng đối với hàm main giỏi bất cứ hàm nào không giống vào Java, cần static public void main cũng vẫn OK. Dù vậy thì return type cần phải đi sau các modifier.

5. cũng có thể overload hàm main được không?

Quý khách hàng có thể overload hàm main miễn sao nó khác signature. JVM đã chỉ điện thoại tư vấn hàm main cùng với parameter là String <>args nhưng thôi. Bạn cần phải tự hotline đông đảo hàm main khác giả dụ bạn muốn sử dụng chúng.

public class FunMainMethodTrivia //Hàm main nguyên ổn phiên bản //JVM sẽ luôn Gọi hàm này public static void main(String <>args) // //Overload đúng theo lệ //JVM sẽ không còn gọi nó public static void main(String s1) //Quý Khách cần được từ Điện thoại tư vấn nếu muốn cần sử dụng //Overload hòa hợp lệ //JVM sẽ không còn hotline nó public static void main(String s1, String s2, String s3) //quý khách hàng rất cần phải từ bỏ gọi nếu như muốn cần sử dụng

6. cũng có thể dùng tên hàm không giống cụ bởi vì main không?

Câu trả lời là ko. JVM sẽ không còn thừa nhận diện bất kể một hàm làm sao khác như là một entry point.

Xem thêm: Bàn Ăn Nhập Khẩu Đài Loan, Bã N ăN HiệN đÁº¡I TạI Tphcm

7. Android tất cả hàm main hay không?

Câu trả lời là có, tuy nhiên nó nằm sâu phía bên trong Android framework.

7b. Bạn bao gồm biết hàm nào trong Android framework chứa hàm này không?

Nếu các bạn tò mò và hiếu kỳ tới mức đào sâu theo stachồng trace tuyệt bất cứ một exception làm sao, các bạn sẽ thấy nó đi qua Handler, Looper, MessageQueue và tiếp đến là entry point của chương trình của công ty. Có một class đặc biệt quan trọng tên là ActivityThread gồm đựng hàm main vào vai trò là entry point trong một lịch trình Android.

8. Đoạn code dưới đây tất cả compile được không?

public class Parent public static void main(String <>args) System.out.println("Im in the parent main method!"); //Chúng ta đang cho chạy class nàypublic class Child public static void main(String <>args) Parent.main(args); Câu trả lời là bao gồm, vẫn chạy thông thường.

9. Có thể override hàm main được không?

Hàm static thiết yếu được override.

10. cũng có thể chạy được 1 chương trình áp dụng đoạn code tiếp sau đây không?

public class Parent public static void main(Object <>args) System.out.println("Im in the main method!"); Câu trả lời là không. JVM chỉ quyên tâm đến hàm có tmê say số là String<>, với trường phù hợp bên trên thì nó vẫn không tìm kiếm được entry point để khởi hễ chương trình.

11. quý khách gồm biết đều ngôn từ như thế nào không giống cần sử dụng hàm main nhỏng entry point không?

Bài viết được dịch tự How well vị you know the Java main method? 12 simple questions lớn kiểm tra your knowledge! của người sáng tác Martin Ombura Jr.