Programming Language/Java

[Java] public static void main(String[] args) 분석

LeeJaeJun 2023. 12. 30. 23:42
728x90
반응형
class 클래스 이름 {
     public static void main(String[] args)
     {
     
     }
}

 

public static void main(String[] args) 는 main메서드의 선언부로 프로그램을 실행할 때 'java.exe'에 의해 호출될 수 있도록 미리 약속된 부분이므로 항상 똑같이 적어주어야 한다.

 

- public

접근 제한자의 종류로는 pulbic, private, protected가 있다. main 함수 모든 실행프로그램의 기본이기에 어디에서나 접근할 수 있어야 한다. 따라서 제한자로 public을 사용하여야 한다.

  +) private는 자기 자신 클래스 안에서만, protected는 자기 자신 클래스 안, 같은 패키지 또는 자식 클래스에서만 사용 가능

 

- static

메모리를 static 영역과 heap 영역(new 연산자)에 할당할 수 있는데 JVM의 Garbage Collector에 의해서 heap 영역의 메모리는 정리될 수 있다. 그에 반에 static은 정리 대상이 아니다. main 메소드는 프로그램에 꼭 필요한 기본 함수이기 때문에 Garbage Collector에 의해 정리되지 않고 항상 메모리에 상주해야 하므로 static을 사용한다.

 

- void 

리턴값이 없다는 의미이다. main함수가 종료되면 프로그램이 자체가 종료되기에 return 값의 의미를 지닐 수 없다.

 

- main

main메서드는 자바 어플리케이션의 시작점이므로 main메서드 없이 Java 애플리케이션은 실행될 수 없다.

작성된 Java애플리케이션을 실행할 때는 'java.exe' 다음에 main 메서드를 포함한 클래스의 이름을 적어줘야 한다.

(+) 모든 클래스가 main메서드를 가지고 있어야 하는 것은 아니지만, 하나의 Java 어플리케이션에는 main메서드를 포함한 클래스가 반드시 하나는 있어야 한다.

(+) 하나의 소스파일에 하나의 클래스만을 정의하는 것이 일반적, 하지만 하나의 소스파일에 둘 이상의 클래스를 정의하는 것도 가능. 이 경우 소스파일의 이름은 public class와 동일해야 한다. 만약 소스파일 내에 public class가 없다면 소스파일 이름은 소스파일 내의 어떤 클래스의 이름으로 해도 상관없다. 단 하나의 소스파일에 둘 이상의 public class가 존재할 수 없다.

 

- String[] args

args 문자열을 배열로 사용하겠다는 의미. args는 변수명이므로 바꾸어도 상관없음. main함수는 프로그램이 실행되면 처음으로 수행되는 함수이기에 외부로부터 값을 받을 수 있어야 함. (일반 함수들처럼 다른 영역에서 입력값을 호출할 수 없기 때문에) 따라서 String[] args라는 구문 자체는 필요함. String[] args를 String args[]와 같은 의미이므로 바꾸어 쓸 수 있다.

728x90
반응형

'Programming Language > Java' 카테고리의 다른 글

[Java] 특수 문자 다루기  (0) 2023.12.30
[Java] 출력  (1) 2023.12.30
[Java] 변수  (0) 2023.12.30
[Java] JDK와 JRE  (0) 2023.12.30
[Java] Java의 특징  (1) 2023.12.30