static 변수나 메서드를 정의할 때 사용되며, 프로그램의 시작과 동시에 메모리에 로드되어, 모든 인스턴스가 공유할 수 있다. static 변수모든 객체마다 존재하는 인스턴스 변수와 다르게 클래스 당 한 개만 존재한다.인스턴스 변수는 객체마다 개별적인 값을 갖지만 static 변수는 모든 객체가 동일한 값을 공유한다.클래스에 종속되어 있으며 객체의 생성과는 무관하게 클래스가 로드될 때 딱 한 번 메모리에 할당된다.동일한 데이터를 여러 인스턴스에 저장할 필요가 없기 때문에 메모리 사용의 중복을 줄일 수 있다.JVM의 클래스 영역(Method Area, Metaspace)에 저장된다.Static 변수는 클래스가 처음 로드될 때 한 번만 초기화되며, 프로그램 종료 시까지 유지되기 때문에 메모리 할당과 ..