= 정적인, 움직이지 않는
즉, 메모리에 고정적으로 할당되어 프로그램이 종료될 때 해제되는 변수나 함수에 쓰는 키워드입니다.
"고정적으로 할당" 어디에 할당되는 걸까요? -> method 영역입니다!
(method 영역은 클래스에 대한 메타정보(멤버변수, 클래스변수(static 변수), 생성자, 메소드)를 저장하는 공간입니다~)
클래스가 사용되기 전, 미리 static을 메모리에 올립니다.
이로인해 static은 다음 특징을 갖게돼요~
StaticTest.a; // 변수 a.k.a 클래스 변수(클래스가 존재하는 영역과 같기 때문)
StaticTest.add(); // Math 클래스의 모든 메소드는 클래스 메소드(static method)이므로 이와 같이 사용할 수 있음!
static에 대해 알아봤는데요, 그럼 Java의 main 메소드는 왜 static 일까요?
-> main 메소드는 인스턴스의 생성과 관계없이 JVM에 의해 호출되므로 반드시 static으로 선언해야 합니다~
항상 사용해오던 static인데 모르던 것이 많았네요.
좋은 글 감사합니다!