본문 바로가기

JAVA 부족한 부분 공부

[JAVA] STRING[] ARGS (프로그램 아규먼트)란 무엇인가?

프로그램 아규먼트 (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