main(String[] Args)에 대해 알아보자.

자바로 그 어떤 프로그램이라도 작성을 하게 되면, 반드시 작성하게 되는 메서드이자 모든 자바 애플리케이션의 시작점인 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
2
3
4
5
6
7
8
9
class main {
public static void main(String[] args){
System.out.println(args.length+"개의 String을 입력하셨습니다.\n");

for(int i=0; i<args.length; i++){
System.out.println("args["+i+"] : "+args[i]);
}
}
}

터미널에서 곧바로 실행했다. main.java 파일을 컴파일하고, 실행할 때 입력값을 넣어서 실행해보았다.

1
2
$ javac main.java
$ java main 123 가나다 abc

입력값으로 전달한 문자가 args라는 이름의 문자열 배열로 저장되어 정상적으로 출력된걸 확인할 수 있다.

출처 : https://javacpro.tistory.com/11