static(스태틱)
static
컴퓨터 프로그래밍에서 정적 변수(靜的變數, static variable)는 정적으로 할당되는 변수이며, 프로그램 실행 전반에 걸쳐 변수의 수명이 유지된다.
static은 변수나 메소드에 키워드로 사용된다.
static 키워드를 사용한 변수는 클래스가 메모리에 올라갈 때 자동으로 생성이 된다. 즉, 인스턴스(객체) 생성 없이 바로 사용가능 하다.
사용 목적
자주 변하지 않는 일정한 값이나 설정 정보같은 공용자원에 대한 접근에 있어서 매번 메모리에 로딩하거나 값을 읽어들이는 것보다
일종의 ‘전역변수’와 같은 개념을 통해서 접근하는 것이 비용도 줄이고 효율을 높일 수있다.
final static 으로 종종 쓰는이유
클래스에서 사용할 해당 멤버 변수의 데이터와 그 의미, 용도를 고정시키겠다는 뜻
모든 클래스 인스턴스에서 똑같이 써야할 값이고, 프로그래머는 이들을 프로그램 처음부터 끝까지 바뀌지 않는 논리로 의도할 것
그렇다면 인스턴스가 만들어질 때마다 새로 메모리를 잡고 초기화시키지 말고, 클래스 레벨에서 한 번만 잡아서 하나의 메모리 공간을 계속 쓰려는 의도
정리
1. 클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통적으로 사용해야하는 것에 static을 붙인다.
2. static이 붙은 멤버변수는 인스턴스를 생성하지 않아도 사용할 수 있다.
3. static이 붙은 함수에서는 인스턴스 변수를 사용할 수 없다.
출처
https://ifcontinue.tistory.com/2
https://djkeh.github.io/articles/Why-should-final-member-variables-be-conventionally-static-in-Java-kor/