2022. 1. 15. 21:52ㆍ개발공부/Java
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"}
로 파라미터가 돼서 들어옵니다.
참고자료
'개발공부 > 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 |