Back-end/Java

static 변수

메델 2022. 9. 26. 03:04

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