자바의 실행 프로그램은 public static void main (String[] args) 라는 main 함수로 시작한다.
public이나 static 같은 경우에는 사용하는 이유를 금방 알아챌 수 있는데,
void나 (String[] agrs) 같은 것들은 어떤 역할을 하는지 의문이 들었다.
위 두 구문의 역할을 알아보자.
main 함수에 void가 붙는 이유는 해당 함수가 반환하는 값이 없기 때문이다.
자바의 main 함수는 프로그램의 시작점을 나타내는 특수한 메서드다.
프로그램이 종료되면 프로그램의 실행이 종료되기 때문에 값을 반환할 필요가 없다.
또한, main 함수는 JVM(Java Virtual Machine)에 의해 직접 호출되므로, 일반적인 방식으로 반환 값을 처리할 수 없다. 프로그램의 실행이 완료되면 JVM이 종료되기 때문에, main 함수의 반환 값은 프로그램 외부에서 사용되지 않는다.
따라서, main 함수에 void가 붙는 것은 관례적인 표기 방식이며,
프로그램의 시작점이 값을 반환하지 않는다는 것을 명시적으로 나타내기 위한 것이다.
args 는 변수명이기 때문에 꼭 args 가 아니어도 상관 없으나, String[] args 구문 자체를 뺄 수는 없다.
main 함수는 프로그램 실행 시 처음으로 수행되는 함수이므로, 외부로부터 값을 입력받을 수 있어야 하기 때문이다. 프로그램 내부에서 값을 호출할 수 없기 때문에 항상 문자열 인자를 받게 된다.
외부로부터 값을 입력받는건 이런 의미이다.
Class Test {
public static void main (String[] args) {
System.out.prinln(agrs[0]);
strMethod("def");
}
public static void strMethod(String srg) {
System.out.println(srg);
}
}
// C:₩Users₩PSH₩Desktop>java Test "abc"
// 출력값
// abc
// def