Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

채널오렌지 THE I.O.T

[Java] public static void main(String[] args)는 무슨 의미일까? 본문

Web/Java

[Java] public static void main(String[] args)는 무슨 의미일까?

채널오렌지 2022. 5. 24. 07:04

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은 프로그램 실행 시 가장 첫 번째로 실행하므로 외부에서 값을 받을 수 있어야 하기 때문이다.

Comments