일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- linux
- js
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- ncs
- 국비
- 패스트캠퍼스
- 웹
- DB
- 패캠챌린지
- java
- 직장인자기계발
- 자바예제
- 패스트캠퍼스후기
- 자바연습문제
- 자바기초
- 디자인패턴
- java기초
- 자바
- 자바기본
- 재택근무
- Spring
- 데이터베이스
- javabasic
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- 리눅스
- String
- 스프링
- 디자인
- 직장인인강
- DesignPattern
- Today
- Total
FIF's 코딩팩토리
패스트캠퍼스 챌린지 24일차 본문
여러 인스턴스에서 공통으로 사용하는 변수 - static 변수
new 키워드를 통해 생성된 인스턴스는 heap 메모리에 만들어진다.
그 후, 인스턴스의 사용이 끝나면 garbage collector를 통해 자동으로 메모리에서 삭제된다.(자바의 최대 장점중 하나)
그렇다면 static 변수란 무엇인가? 사전적 의미로는 정적인 이라는 뜻이 있다.
자바에서 static이 붙은 변수는 선언되자마자 메모리에 우선순위로 만들어 지게 된다.
이때 static 메모리 영역에 저장된다.
new키워드를 통해 만들어진 인스턴스와는 반대로 static이 붙으면 사용이 끝나도 메모리에 항상 남아있다.
자바에서 main 메서드를 최우선적으로 탐색하는 이유도 main 메서드 앞에 static이 붙기 때문이다.
자 그렇다면 공통으로 사용하는 변수가 필요한 경우를 좀 더 알아보자.
1. 여러 인스턴스가 공유하는 기준 값이 필요한 경우
2. 저번예제에서 학생마다 새로운 학번 생성이 필요한 경우
3. 카드 회사에서 카드를 새로 발급할 때마다 새로운 카드 번호를 부여할 경우
4. 회사에 사원이 입사할 때 마다 새로운 사번이 필요한 경우
등등이 있을 수 있다. 이렇듯 static 변수는 인스턴스들이 공유를 하고 있다.
그럼 static 변수를 선언하고 사용하려면 어떻게 해야할까?
1. 인스턴스가 생성될 때 만들어지는 변수가 아닌, 처음 프로그램이 메모리에 로딩되는 순간 부터 메모리를 할당 받음
2. 클래스 변수, 정적 변수라고도 함(vs 인스턴스 변수)
3. 인스턴스 생성과 상관 없이 사용 가능하므로 클래스 이름으로 직접 참조
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'패스트캠퍼스 챌린지' 카테고리의 다른 글
패스트캠퍼스 챌린지 26일차 (0) | 2022.02.18 |
---|---|
패스트캠퍼스 챌린지 25일차 (0) | 2022.02.17 |
패스트캠퍼스 챌린지 23일차 (0) | 2022.02.15 |
패스트캠퍼스 챌린지 22일차 (0) | 2022.02.14 |
패스트캠퍼스 챌린지 21일차 (0) | 2022.02.13 |