public static void main(String[] args){} 의 의미

김재현·2023년 10월 31일
0

TIL

목록 보기
19/88
post-thumbnail

public static void main(String[] args){} 의 의미

Public

접근제어자 (같은 패키지 혹은 다른 패키지 모두 접근(참조)할 수 있다)

static

기존의 객체의 경우 선언 시 stack 또는 heap 메모리에 할당되지만,
static의 경우 선언되기 이전에 프로그램이 실행 시 메모리에 할당되는 것을 의미한다.
그렇기 때문에 객체에 소속된 멤버가 아니고, 클래스의 고정멤버로서 이 둘을 클래스 멤버라고도 부른다. 그 결과 객체 생성 없이 호출 가능.

void

return할 결과물이 없을 경우, return타입을 void


사실 여기까지는 강의를 통해 알고 있던 내용이었고, 핵심은 main(String[] args)이다.

main(String[] args)

String[] arg 에서 arg는 arguments의 약자로 '인수'(파라미터)라는 의미다. 이것이 배열인 이유가 무엇일까?

main()에게 외부 데이터를 넘겨주려면 main()가 시작되기 전에 데이터를 입력받는 스레드가 필요하다. 하지만 Stack 영역의 적재되는 첫 스레드는 main()이다.
그렇기 때문에 사용자가 main()에게 넘겨주고 싶은 외부 데이터를 배열에 넣어 java 명령어와 함께 받는 것이다.

(프로그램의 실행 순간에 외부의 값을 가져와서 프로그램 내 사용하고자 할 때 메모리에 저장할 공간을 미리 선언해 두는 것!)

입력받은 데이터를 배열로 만들어 Heap영역에 저장하고 배열의 주소를 String[] args에 저장한뒤, 그 주소를 main()이 파라미터를 통해 넘겨받는 것이다.


오늘은 궁금증을 해결하고 spring을 입문했다.
아직 spring이 무엇인지 잘 정리가 되지 않는다.
내일도 이어서 공부해봐야지!

출처

profile
I live in Seoul, Korea, Handsome

0개의 댓글