1. static 변수(클래스 변수, 정적변수)
- 여러 인스턴스가 공유하는 기준 값이 필요한 경우 사용 (공통으로 사용하는 변수가 필요한 경우)
- ex) 학생마다 새로운 학번을 생성하는 경우
- 인스턴스가 생성될 때 만들어지는 변수가 아닌 처음 프로그램이 메모리에 로딩될때 메모리를 할당
- 인스턴스 생성과 상관없이 사용 가능하므로 클래스 이름으로 직접 참조
- ex) Student.serialNum = 100;
- static 변수는 인스턴스에서 공통으로 사용하는 영역
2. 변수의 유효 범위와 메모리
- 변수의 유효범위와 life cycle은 각 변수의 종류마다 다름
- 지역변수, 멤버변수, 클래스 변수는 유형범위와 life cycle, 사용하는 메모리가 다름
- 멤버 변수가 많으면 인스턴스 생성시 불필요한 메모리가 할당
- static 변수는 프로그램이 메모리에 있는 동안 계속 그 영역을 할당하고 있음 -> 너무 큰 메모리를 할당하는 것 x
- 클래스 내부의 여러 메소드에서 사용하는 변수는 멤버 변수로 선언하는 것이 좋다.
3. 싱글톤 패턴 (singleton pattern)
- singleton patten
- 프로그램에서 인스턴스가 단 한개만 생성되어야 하는 경우 사용
- static 변수와 메서도를 사용하여 구현
4. 객체 배열을 구현한 클래스 ArrayList
- ArrayList는 자바에서 제공하는 클래스로 객체 배열을 조금 더 효율적으로 관리할 수 있음
- ArrayList의 주요 Method
(참고: fastcampus 한 번에 끝내는 Java/Spring 웹 개발 마스터 )
'Back-end > Java' 카테고리의 다른 글
자바 기초 정리 (0) | 2023.01.30 |
---|---|
접근 제어 지시자 & this (0) | 2022.09.12 |
생성자 (0) | 2022.09.09 |
인스턴스 & 동적 메모리 (1) | 2022.09.08 |