왜 자바의 메인 메서드는 public static void를 사용할까?
자바의 메인메서드를 작성할 때는 public static void main(String[] args){}구조로 작성합니다. 왜 이런 구조를 갖게 되었는지 살펴보겠습니다.
public
public은 접근제어자입니다. 어느 클래스에서든 해당 객체를 참조할 수 있다는 뜻입니다. JVM(Java Virtual Machine)이 접근 하기 위해서 public을 사용해야만 합니다. 다른 접근 제어자를 사용하면 프로그램이 실행되지 않습니다.
static
static으로 뭔가를 선언하게 되는 경우, 자바가 컴파일 되는 시점에 정의됩니다(클래스 로드). 그리고 static 요소를 non-static 요소에서 호출하는 것은 불가능합니다.
main 메서드는 프로그램의 시작점. 프로그램이 실행되면 제일 먼저 호출되는 메서드이기 때문에 객체를 생성하지 않은 채로 바로 작업을 수행해야 하기 때문에 static이어야 합니다.
void
타입이 void라는 것은 반환할 것이 없다는 의미입니다. 즉, 메인 메서드를 호출하는 JVM(Java Virtual Machine)에서 반환값을 요구하지 않으니 void타입을 사용합니다(멀티 스레드를 염두했기 때문).
포스팅 계기
아래 블로그 개발자가 카카오에 입사하는 과정에서 면접때 질문 중 하나로 java의 메인 메서드가 왜 public static void인지 질문했다고 하는데, 저도 감은 잡히지만 표현하는데에서 모호할 것 같아서 한번 알아보기도 하고, 공유도 하고자 글을 썼습니다.
'Language > Java' 카테고리의 다른 글
JAVA - 프로젝트 패키지이름 명명(Naming) 관례 (0) | 2021.02.04 |
---|---|
Java - 스택 트레이스(Stack Trace) 읽기 (3) | 2020.10.09 |
Java - 람다식(Lamda Expression)이란 ? (+ 예제) (0) | 2020.09.25 |
Java - JPA란 ? (+ORM) (0) | 2020.09.21 |
Java - JDBC란 ? (0) | 2020.09.20 |