[Java] main 메서드

2022. 1. 15. 21:52개발공부/Java

728x90

main 메서드

Java를 처음 시작하면 클래스의 메서드를 실행시킬 때 main method를 사용합니다. 하지만 원리에 대해 오래 생각해본 적이 없다는 걸 최근에 발견했고 간단히 찾은 내용을 소개하려 합니다.

Java main method는 Java 프로그램이 시작될 때 실행되는 포인트들입니다. 메서드 규약은 public static void main(String[] args)이며, Argument의 네이밍을 myStringArgs로 수정할 순 있어도 main이란 메서드명을 수정할 순 없습니다.

메서드를 하나하나 뜯어보면,

  • public 접근 제어자는 java runtime 때 클래스 경로가 어디 패키지 내에 위치하든 실행할 수 있도록 접근 권한을 줍니다.

  • static은 java runtime 때 클래스 인스턴스가 생성되 지 않았기 때문에, static을 이용하여 java memory에 인스턴스를 담아뒀다가 method를 실행시켜줍니다. 만약 non-static 메서드라면 JVM은 클래스 인스턴스가 없기 때문에 메서드를 호출할 수 없겠죠.

  • void는 리턴타입이 없을 때 명시해주는데, main method가 끝나면 java program이 종료되기 때문에 반환해주는 값이 있어도 처리해줄 수 없습니다. 따라서 void리턴 타입을 채택하고 있습니다.

  • main이란 이름은 Java가 실행할 메서드를 인지할 수 있도록 약속한 메서드명 입니다. 만약 메서드명을 수정한다면 Java는 실행메서드를 찾지 못합니다.

  • String[] args는 Argument인데 명령어로 실행할 때 값을 주입할 수 있습니다. 예를 들어 Test.class의 main method를 실행한다고 하면 javac Test.java로 클래스를 컴파일 하고 java Test "HelloWorld" "HelloJava"라는 커맨드를 통해 main method를 실행시켜줍니다. 그럼 String[] args = {"HelloWorld", "HelloJava"}로 파라미터가 돼서 들어옵니다.


참고자료

public static void main(String[] args) – Java main method

'개발공부 > Java' 카테고리의 다른 글

[UML] UML(Unified Modeling Language) Diagram  (0) 2022.01.22
[Regex] Pattern and Matcher in Java  (0) 2022.01.21
[Java] Mac class  (0) 2022.01.13
[JPA] @Embedded 와 @Embeddable  (0) 2021.10.08
[Supplier] What is Java 8 Supplier interface?  (0) 2021.09.11