채널오렌지 THE I.O.T
[Java] public static void main(String[] args)는 무슨 의미일까? 본문
C, C++을 찍먹 할 때 느꼈던 점은 역시나 시작이 참 어렵다. #include와 int main()과 iostream과 cout <<... 뭐가 뭔지 모르는 채로 시작해 조금씩 하다 보면 이제야 알 것 같은 그 느낌! 이번 자바에서는 제대로 공부하고 싶어서, 미리 그 느낌을 알고 싶어서 알아보기로 했다.
public
접근제한자다. 제한자란, 이 함수의 접근 범위를 지정하는 것이다.
public | 모든 접근을 허용함 |
protected | 같은 패키지나 자식 클래스만 접근가능 |
default | 같은 패키지에 소속된 클래스만 접근가능 |
private | 자신의 클래스 내부에서만 접근 가능 |
위의 표는 밑으로 갈수록 접근 제한이 강화되어있다.
여기에서 main 함수는 public이 접근 제한자다. main은 가장 기본이 되는 함수이므로 당연히 클래스들이 자유롭게 접근해야 하여 public으로 선언한 것이다.
static
정적 함수란 뜻이다. 변수, 함수를 메모리에 할당할 때, 저장하는 방법이 2가지가 있다.
static | heap | |
메모리 할당 | 프로그램 실행시 저장함 | 연산 실행시 저장함 |
메모리 정리 | 정리 안함 | Garbage Collector이 정리함 |
그래서 main이 Garbage Collector로 정리되면 프로그램이 죽으므로 static 영역에 메모리를 할당한다.
void
말 그대로 비어있다는 의미로 return값이 없다는 것을 의미한다. void main()이라는 건 main을 호출하면 그 호출자에게 줄 결과값은 없다는 뜻이다.
main
자바의 필수적인 규칙으로 반드시 모든 자바 애플리케이션 프로그램에 들어가야 하는 문법이다. 컴파일 후 Run 하면 첫 번째로 실행하는 곳이 main() 메소드다.
String[] args
String[]은 문자열 배열이다. 여기서 args는 변수명으로 args는 다른 이름으로 바꿔도 된다. 그래서 여기서는 args라는 이름의 문자열 배열이 있다는 뜻이다. 여기로 매개변수를 전달해 잘 써먹을 수 있다..
main 함수에서 이를 생략 못하는 이유는 main은 프로그램 실행 시 가장 첫 번째로 실행하므로 외부에서 값을 받을 수 있어야 하기 때문이다.
'Web > Java' 카테고리의 다른 글
[Java] 인텔리제이 Src폴더 추가하기 (0) | 2022.05.28 |
---|---|
[Java] 인텔리제이 argument 설정하기! (0) | 2022.05.23 |
[Java] 인텔리제이의 한 프로젝트에서 여러 .java class를 Run 하는 법 (0) | 2022.05.22 |