Java의 Main()과 String[] args

cutiepazzipozzi·2023년 6월 25일
1

지식스택

목록 보기
33/35
post-thumbnail

코드를 작성할 때 무조건 지나쳐야 하는 메서드가 있다. 그건 바로 main() 메서드인데, 우리는 무슨 법처럼 public static void main(String[] args)를 사용한다. 도대체 어떻게 실행되는 걸꽈?

Java 프로그램을 실행하는 첫 시작이 main() 메서드이다. JVM이나 컴파일러는 Java 프로그램이 실행되기 시작할 때 main 메서드를 관찰한다. 그렇기에 main 메서드는 그것이 시작이라는 표시로 JVM이 인식하게끔 하는 시그니쳐가 필요하다. 그래서 고정된 형식으로 main 메서드를 사용하는 것이다. 만약 그 시그니쳐가 바뀐다면, 프로그램은 컴파일 되지만 실행은 되지 않을 것이다.

java의 실행 파일인 java.exe가 불리면, 이는 Java Native Interface를 만들고, JVM에 싣는다. 이때 java.exe는 실행문을 파싱하여(아마도 띄어쓰기 기준으로..?) 새로운 문자배열을 만들어내고, main()을 호출한다. 프로그램이 실행을 멈출 때까지 작동하는 데몬 스레드가 이 메인 메서드에 접근한다.

Public: 접근 지정자
Static: 키워드 (클래스의 생성과 관계없이 JVM이 메인 메서드를 호출시킬 수 있도록 함)
Void: 키워드

  • Java 프로그램은 JVM에서 메인 스레드로 실행된다. 또한 프로그램과 운영 체제 간에는 직접적인 상호작용이 없기 때문에 종료 상태를 반환할 상대가 없어 void로 설계되었다.

  • main 메서드가 없이 자바 프로그램을 실행할 순 있다. static 블럭을 활용하면 된다.

참조

https://www.geeksforgeeks.org/java-main-method-public-static-void-main-string-args/

profile
노션에서 자라는 중 (●'◡'●)

0개의 댓글