이론 정리/java

자바에서 public static void가 메인메소드로 시작하는 이유가 뭘까?

철매존 2022. 11. 6. 21:59
728x90

요즘 GoLang을 공부중인데 이친구는 main.go에서부터 시작한다.

근데 그러다가 자연스럽게 java는 public static void main(String[] args) 에서부터 시작하는데 그 이유가 뭘까 궁금하여 찾아보게 되었다.

package ryoochan;

public class RyoochanHandsome {
    public static void main(String[] args) {

    }
}

처음에 프로젝트를 시작하면 이렇게 초기 코드가 생성된다.
그래서 이게 뭔데....? 싶을 것이다. 내가 그랬음.

일단 하나씩 까보자

public

이거는 뭐 다들 알것이다.
Spring으로 개발을 해봤으면 알텐데 접근 제어자중 하나이다
접근 제어자는

private -> protected -> public

요렇게 3개가 있는데 public이면 어디서든 이걸 참조할 수 있다든 것이다.
말하자면 어플리케이션 어디서든 요 메인메소드를 실행시킨다는 것이다.

static

이름을 보면 알 수 있듯 정적 함수라는 것이다.
이거는 자바가 컴파일 되는 시정에 정의되고, 이러한 static함수를 non-static에서 호출할 수는 없다.

이게 뭔소리냐면 main 메서드는 가장 먼저 수행되기 때문에 객체 생성 이전에 작업을 수행하는 것이다.
그래서 static으로 설정함

void

반환 타입이 없다.

'이론 정리 > java' 카테고리의 다른 글

싱글톤 패턴  (0) 2022.12.06
java의 volatile  (0) 2022.12.06
Java에서 기본 타입과 참조 타입의 차이  (0) 2022.05.15
List와 Set의 차이점, 활용  (0) 2022.04.06
abstract class와 interface에 관하여  (0) 2022.04.06