여러 인스턴스에서 공통으로 사용하는 변수를 선언하는 것.
공통으로 사용하는 변수가 필요한 경우
- 여러 인스턴스가 공유하는 기준 값이 필요한 경우
- 값을 변경할 수 있음
ex. 학생마다 새로운 학번 생성 - 학번의 기준
ex. 카드회사에서 카드를 새로 발급할때마다 새로운 카드 번호를 부여 - 카드 번호 기준
ex. 회사에 사원이 입사할때마다 새로운 사번이 부여 - 사번 기준
staic 변수
- 인스턴스가 생성될 때 만들어지는 변수가 아닌, 처음 프로그램이 메모리에 로딩될 때 메모리를 할당
: 따라서 heap 메모리에 올라오지 않음. 프로그램이 메모리에 할당되어 프로세스가 되는 순간 Data영역(static, 상수 라고도 함)에 저장되고, 프로그램이 전부 끝난 후 메모리에서 unload되는 순간 없어짐
- 클래스 변수, 정적변수 라고도 함.
- 인스턴스 생성과 상관없이 사용 가능하므로 클래스 이름으로 직접 참조
** 짚고 넘어가는 메모리 할당
- java 뿐만 아니라 다른 프로그램 언어도 마찬가지로 프로그램은 보통 아래 세 가지 영역의 메모리를 사용하게 됨
- 힙 메모리 : 동적 메모리, 다 쓰고나면 free, release 시키는 메모리, java는 GC(Garbage Collector)가 알아서 처리해줌
- 스택 메모리 : function이 호출될 때마다 함수(메서드) 안에서 사용하는 지역변수 메모리
- 데이터 영역(constant 영역) 메모리 : 처음 프로그램이 메모리에 load되는 순간부터 할당되어 공유되다가 프로그램이 unload될 때 사라지는 영역
출처 : 패스트캠퍼스
'Java' 카테고리의 다른 글
[Java기본] 상속1 - 문법과 사용예제 (0) | 2021.04.29 |
---|---|
[Java기본] ArrayList-객체배열 (0) | 2021.04.28 |
[Java기본] Array - 배열에 대하여 (0) | 2021.04.27 |
[Java기본] static 응용 - 싱글톤 패턴(singleton pattern) (0) | 2021.04.27 |
[Java기본] 객체 자신을 가리키는 this (0) | 2021.04.27 |