JAVA/java 공부

[JAVA] class 클래스와 객체 : Static 변수 , 변수 유효 범위

congs 2023. 3. 25. 22:03

Static 변수 ( 정적 변수 , 클래스 변수 )

 클래스에서 공통적으로 사용하는 변수  ' static ' 변수로 선언

  • 프로그램이 실행되어 메모리에 올라갔을 경우, 단 한번 공간이 할당
  • 값을 모든 인스턴스가 공유
  • 위치 : 클래스 내부에 선언 + 변수 선언시 자료형 앞에 위치
  • ex) static int num;

변수 유효 범위

1. 지역 변수 ( = 로컬 변수 )

  1. 함수나 메서드의 내부에서 선언
  2. 스택 stack 메모리에 생성
    • 함수가 호출되면서 생성 ~ 함수 종료시 소멸
  3. 하나의 함수에 선언한 지역 변수 = 타 함수에서 사용 불가

 

2. 멤버변수 ( = 인스턴스 변수 )

  1. 클래스 내 선언
  2. 힙 heap메모리에 생성
    • 인스턴스 생성 시 생성 ~ 가비지 컬렉터가 메모리 수거시 소멸
  3. 클래스의 어느 메서드에나 사용 가능 = 여러 메서드에서 사용시 이용

 

3. static 변수 ( = 클래스 변수 )

  1. static 예약어 사용하여 클래스 내 선언
  2. 여러 인스턴스에서 공통으로 사용
  3. 데이터 영역 메모리에 생성
    • 프로그램 시작 ) 상수와 함께 생성
    • 프로그램 종료 ) 메모리 해제시 소멸