여러 인스턴스에서 공통으로 사용하는 변수를 선언하는 것.

 

공통으로 사용하는 변수가 필요한 경우

- 여러 인스턴스가 공유하는 기준 값이 필요한 경우

- 값을 변경할 수 있음

ex. 학생마다 새로운 학번 생성 - 학번의 기준

ex. 카드회사에서 카드를 새로 발급할때마다 새로운 카드 번호를 부여 - 카드 번호 기준

ex. 회사에 사원이 입사할때마다 새로운 사번이 부여 - 사번 기준

 

staic 변수

- 인스턴스가 생성될 때 만들어지는 변수가 아닌, 처음 프로그램이 메모리에 로딩될 때 메모리를 할당

  : 따라서 heap 메모리에 올라오지 않음. 프로그램이 메모리에 할당되어 프로세스가 되는 순간 Data영역(static, 상수 라고도 함)에 저장되고, 프로그램이 전부 끝난 후 메모리에서 unload되는 순간 없어짐

- 클래스 변수, 정적변수 라고도 함.

- 인스턴스 생성과 상관없이 사용 가능하므로 클래스 이름으로 직접 참조

 

 

** 짚고 넘어가는 메모리 할당

- java 뿐만 아니라 다른 프로그램 언어도 마찬가지로 프로그램은 보통 아래 세 가지 영역의 메모리를 사용하게 됨

- 힙 메모리 : 동적 메모리, 다 쓰고나면 free, release 시키는 메모리, java는 GC(Garbage Collector)가 알아서 처리해줌

- 스택 메모리 : function이 호출될 때마다 함수(메서드) 안에서 사용하는 지역변수 메모리

- 데이터 영역(constant 영역) 메모리 : 처음 프로그램이 메모리에 load되는 순간부터 할당되어 공유되다가 프로그램이 unload될 때 사라지는 영역

 

 

출처 : 패스트캠퍼스

 

 

+ Recent posts