이것은 면접에서 직면 한 질문입니다.
Java의 main 메소드가 public static void main (String [] args)으로 불리는 이유는 무엇입니까?
대답:
1. main ()은 프로그램 실행이 시작될 때마다 JVM에 의해 호출되므로 public으로 선언되어야합니다. JVM은 프로그램 패키지에 속하지 않습니다.
패키지 외부의 main에 액세스하려면 public으로 선언해야합니다. public 이외의 것으로 선언하면 Runtime Error 는 표시 되지만 Compilation time error는 표시 되지 않습니다.
2. main ()은 static으로 선언되어야합니다 . 메소드가 static으로 선언 된 경우 ClassName.methodName ()을 사용하여 클래스 외부에서 해당 메소드를 호출 할 수 있기 때문입니다 .
class Sample
{
static void fun()
{
System.out.println("Hello");
}
}
class Test
{
public static void main(String[] args)
{
Sample.fun();
}
}
JVM은 먼저 테스트 클래스를로드하고 명령 행 인수를 확인하고 기본 메소드를 Test.main ()으로 호출합니다.
3. main ()은 void main ()으로 선언되어야합니다 JVM이 main ()의 값을 기대하지 않으므로 으로 선언되어야하므로 void로 선언해야합니다.
다른 반환 유형이 제공되는 경우 RunTimeError 즉, NoSuchMethodFoundError입니다.
4. JVM이 명령 행 인수를 전달하여 main 메소드를 호출하므로 main ()은 배열로 문자열 인수를 가져야합니다 . 문자열 배열 오브젝트에 저장되므로 main ()에 인수로 전달됩니다.