นี่คือคำถามที่ฉันเผชิญในการสัมภาษณ์ของฉัน
ทำไมเมธอดหลักใน Java ถูกเรียกว่า public void main (String [] args)
ตอบ:
1. main () จะต้องประกาศสู่สาธารณะเพราะ JVM ถูกเรียกใช้เมื่อใดก็ตามที่การดำเนินการของโปรแกรมเริ่มต้นขึ้น JVM ไม่ได้เป็นของแพ็คเกจโปรแกรมของเรา
Inorder เพื่อเข้าใช้งานหลักนอกแพ็คเกจเราต้องประกาศให้เป็นแบบสาธารณะถ้าเราประกาศเป็นสิ่งอื่นที่ไม่ใช่สาธารณะจะแสดงข้อผิดพลาดรันไทม์แต่ไม่ใช่ข้อผิดพลาดในการรวบรวมเวลา
2. main () จะต้องประกาศว่าเป็นแบบคงที่เพราะหากวิธีการประกาศเป็นแบบคงที่แล้วเราสามารถเรียกวิธีการที่อยู่นอกชั้นเรียนโดยใช้ClassName.methodName ();
class Sample
{
static void fun()
{
System.out.println("Hello");
}
}
class Test
{
public static void main(String[] args)
{
Sample.fun();
}
}
JVM จะทำการโหลดคลาส Test ก่อนและจะตรวจสอบอาร์กิวเมนต์ Commandline และเรียกใช้เมธอดหลักเป็น Test.main ();
3. main () จะต้องประกาศเป็นโมฆะ main ()เนื่องจาก JVM ไม่ได้คาดหวังว่าจะมีค่าใด ๆ จาก main () ดังนั้นจึงต้องประกาศเป็นโมฆะ
หากมีการระบุประเภทการส่งคืนอื่น ๆ ประเภทนั้นจะเป็น RunTimeError เช่น NoSuchMethodFoundError
4. main () ต้องมี String arguements เป็น Arrayเนื่องจาก JVM เรียกเมธอด main โดยผ่าน arguement บรรทัดคำสั่งเนื่องจากมีการเก็บไว้ในวัตถุ array array มันจะถูกส่งผ่านเป็นอาร์กิวเมนต์ไปยัง main ()