JAVA의 main() 메서드
자바 프로그램의 시작지점(Entry point)은 main() 메서드입니다. main() 메서드는 프로그램의 시작점이기 때문에 반드시 main() 메서드를 구현한 public class가 하나는 있어야 합니다. main()메서드는 프로그램의 흐름을 최초로 시작하는 메인 스레드이기도 합니다.
main 메서드의 선언부 규칙은 다음과 같습니다.
public static void main(String[] args) {
..프로그램 시작..
} |
cs |
그런데 main 메서드가 받는 인자값으로 String 배열을 받고 있습니다. 이 String 배열은 콘솔 명령행을 통해 프로그램이 시작될 때 추가적으로 넘겨받는 값들을 저장하는 배열입니다. 문자열은 숫자와 문자 모두 표현이 가능하니 String 배열을 사용하도록 JVM을 설계한것이 아닌가 싶습니다(정확한 정보는 아님). 프로그램 시작과 동시에 값을 넘겨주어야 하는 프로그램을 작성할 때 유용합니다.
명령행으로 받은 인자값 출력하기
main 메서드에서 받은 인자값은 args 배열을 통해 들어옵니다. 다음은 넘겨준 값이 있다면 값을 하나 하나 출력하는 예제입니다.
public class MainTest {
public static void main(String[] args) {
for(int i=0; i < args.length; i++) {
System.out.println("args[" + i + "] = " + args[i]);
}
}
} |
cs |
우리가 콘솔을 통해 자바 프로그램을 실행할때는 다음과 같이 실행합니다. (컴파일이 되어 있어야 합니다.) 이 경우에는 아무런 값도 넘겨주지 않았으므로 당연히 아무런 결과도 출력되지 않습니다.
> java MainTest |
cs |
명령행을 통해 넘겨줄 인자가 있는경우는 스페이스바(공백) 단위로 값을 넘겨줄 수 있습니다. 다음과 같이 Hello World를 넘겨주면 각각 배열의 0번 요소와 1번 요소로 값을 넘겨줍니다.
> java MainTest Hello World
args[0] = Hello
args[1] = World |
cs |
만약 띄어쓰기를 포함하여 하나의 인자로서 넘겨주고 싶은 경우에는 "" 로 묶어줍니다.
> java MainTest "Hello World"
args[0] = Hello World |
cs |
만약 "(쌍따옴표) 그대로 넘겨주고 싶으면 자바 문자열 문법에 맞게 역슬래시로 이스케이프 처리하여 넘겨주면 됩니다.
> java MainTest "Hello \"World\""
args[0] = Hello "World" |
cs |
'자바[Java]' 카테고리의 다른 글
[Java] java.io.File 클래스 [1] File 클래스 개념 및 생성 방법 (0) | 2018.07.09 |
---|---|
[JAVA] Java I/O(입출력) [1] 입출력 및 스트림 개념 (0) | 2018.07.07 |
[JAVA] Hello World 프로그램 분석 (0) | 2018.05.10 |
[JAVA] 자바 첫 번째 프로그래밍 Hello World 출력 코딩하기 (2) | 2018.05.10 |
[JAVA] 자바 언어의 특징 (0) | 2018.02.15 |