프로그램 아규먼트 (String[] args) ?
자바에서 가장 먼저 코드를 로딩하는 곳은 main()이다.
ex)
public static void main(String[] args) {...}
main() 메서드 {...} 블록 안에 코드를 작성해주면 JVM은 가장 먼저 이곳을 읽어들인다.
그런데 대체 String[] args는 무엇을 의미하는가?
역사 :
- 이클립스를 사용하기 전에는 명령창을 통해서 java 확장자 파일을 class 파일로
직접 컴파일 시켰다. 그리고 컴파일된 class 파일의 디렉토리 주소를 찾아가 다음과
같이 도스 창에 명령어를 작성해주었다.
> java -cp bin step08.Test01_1
이렇게 class 파일을 로딩할 경우 JVM은 main() 메서드 안에 있는 코드를 순서대로
읽게 된다. 그런데 main() 메서드 코드를 읽을 때 특정 파라미터 값을 바로 넘겨주고
싶을 때가 생긴다. 이때 args라는 이름을 가진 String[] 배열을 파라미터 값으로 넘기는
시도를 하게 된다.
class 파일이 생성된 디렉토리를 찾아가 다음과 같이 명령어를 주면
String[] args 형태의 파라미터 값을 넘겨줄 수 있다.
> java -cp bin step08.Test01_1 aaa bbb ccc 111 222
굵게 칠한 부분이 바로 각각 String 타입의 args 배열 값이다.
그래서 만약 main() 메서드에 다음 코드
System.out.println(args[0], args[1], args[2], args[3], args[4]); 를 써주게 되면
- 실행 결과 :
aaa, bbb, ccc, 111, 222
이렇게 출력이 된다.
정리 :
프로그램 아규먼트 (String[] args)
- 프로그램을 실행할 때 넘겨주는 값
- 예) 클래스 파일 뒤에 "aaa bbb ccc 111 222"와 같은 값을 넘겨줘 보자.
> java -cp bin step08.Test01_1 aaa bbb ccc 111 222
- 이처럼 클래스 이름 뒤에 값을 주게 되면 공백을 기준으로 문자열을 잘라서 배열에
담아 main() 메서드의 파라미터 값으로 넘어온다.
출처: uoonleen.tistory.com/10
'JAVA 부족한 부분 공부' 카테고리의 다른 글
파일 읽기, 쓰기 (0) | 2021.01.19 |
---|---|
printf() 함수의 포맷 스트링 (0) | 2021.01.18 |
상속, 오버라이딩 (0) | 2021.01.18 |
비트 연산자, 시프트 연산자 (0) | 2021.01.18 |
비트, 바이트 와 진수의 상관관계 (0) | 2021.01.18 |