# Why main method should be static

## 요약

만약 메인 메소드가 스태틱이 아니라면 해당 메소드를 포함하고 있는 클래스를 인스턴스화 해야 하는데 생성자에 인자를 받을 경우에는 JVM이 어떻게 해야 할 지를 모르기 때문에 인스턴스화 필요 없이 자동으로 메모리에 올라가게 되는 스태틱으로 선언해야만 JVM이 시작점을 찾을 수 있다.

### p.s. 그런데 왜 public 이지?

비슷한 이유로 퍼블릭 접근 제어자를 붙이지 않으면 메인 메소드가 선언된 클래스 외부에서 메인 메소드를 실행할 수 없기 때문에 public을 붙여 외부에서 메인 메소드를 실행할 수 있도록 해야 한다.

## 참고문헌

* <https://stackoverflow.com/a/146662>
