public class Main {
public static void main(String[] args) {
System.out.println("안녕, 세계!");
}
}
우리가 마르고 닳도록 사용하는 실행 함수 main이다
public class
실행 파일로 프로젝트 내 모든 클래스에 접근하기 위해 public class 사용
public static
객체생성(new) 없이 실행되는 이유
JVM이 실행할 클래스를 찾음
static 키워드가 붙어있는 멤버들을 정해진 메모리 위치(static zone)에 한번 자동으로 로딩함
static 멤버는 클래스 사용 시점에서 한번만 메모리에 로딩됨JVM이 static-zone에서 main() 메서드 호출
호출된Stack에 push 후 동작
void
void 말고 다른 것으로 바꾸면 main 시그니처 메서드로 인식되지 않는다
이는 JVM이 반환 값을 요구하지 않도록 기본 설정되어 있다.
(JVM 시그널 핸들러를 방해하지 않기 위함)
이 메서드 종료 후 System.exit 호출한다.
시그널 제어를 하고 싶다면 아래 링크 참고
How the JVM processes signals
main
시그니처 메서드 선정을 위한 암묵적 약속
String[] args
프로그램을 실행할 때 터미널 명령어를 통해 수행된다.
입력되는 인자와 값이 문자열 형태이므로 String[]으로 선정되었다.
참고