메모리 효율
static 키워드를 변수 앞에 붙이면 메모리 할당을 딱 한번만 하게 된다.
공유
같은 곳의 메모리 주소만을 바라보기 때문에 static 변수의 값을 공유하게 된다.
static method 안에서는 인스턴스 변수 접근이 불가능하다. 오직 static 변수만 static method 안에서 접근 가능
JVM으로 소스 로딩 시 메모리를 할당 받기 때문에 new 명령어보다 먼저 실행된다.
-> static method 안에서 인스턴스 변수 접근이 불가능했던 이유
메모리에 오로지 하나만 생성되기 때문에 "클래스 변수"라고 한다.
클래스명.변수명 혹은 클래스명.메소드명으로 접근한다.
static 변수는 초기값 0이 할당된다.
static 변수는 프로그램을 실행 시 최초 한번만 특정값으로 초기화되고 더 이상 초기화되지 않는다.
자주 생성이 필요한 객체의 경우 static 객체 형식으로 생성하면 객체가 하나만 메모리에 생성됨으로 처리 속도를 많이 향상시킬 수 있다.
static {
// 수행문;
}