자바로 그 어떤 프로그램이라도 작성을 하게 되면, 반드시 작성하게 되는 메서드이자 모든 자바 애플리케이션의 시작점인 main(). 항상 입력하면서도 여기에 대해 자세히 알려고 했던적이 있었나 싶다. 한 번 쯤 정리하고 싶어서 이번에 정리하게 되었다.
우선 main 메서드는 다음과 같은 구조로 구성되어 있다.
1 | public static void main(String[] args) { } |
public
- 접근제한자이다. 어디서나 접근가능한 메서드를 의미한다.
static
- main 메서드는 그 자체가 애플리케이션이라고 할 수 있을만큼 생명주기가 길기 때문에 당연히 static 키워드를 사용하여 Heap 메모리에 할당해야 한다.
void
- 리턴 타입이며, 반환하는 데이터가 없음을 의미한다.
main
- 메서드 이름이다.
여기까지는 이 글을 읽는 사람들이라면 이미 모두 알고 계실 것 같다.
이 main 메서드에서 파라미터로 받는 (String[] args)에 대해서 잘 모르고 있었는데, 이 파라미터는 ""
로 입력받는 문자들의 집합을 String
이라는 클래스 변수로 정의하겠음을 의미한다고 한다. 그냥 String은 아니고 String[] 인만큼 연속적인 데이터를 입력하면 문자열 배열로 인식하여 데이터를 저장한다고 한다.
테스트 코드를 작성해보았다. 간단한 코드여서 IDE를 실행하지는 않고 vim 에디터를 사용했다.
1 | class main { |
터미널에서 곧바로 실행했다. main.java 파일을 컴파일하고, 실행할 때 입력값을 넣어서 실행해보았다.
1 | $ javac main.java |
입력값으로 전달한 문자가 args라는 이름의 문자열 배열로 저장되어 정상적으로 출력된걸 확인할 수 있다.