본문 바로가기
Java

JAVA 변수

by 차가운개발 2024. 9. 19.

ㅇ 변수의 종류

변수의 종류에는 멤버 변수와 지역변수로 구분할 수 있고, 멤버 변수는 인스턴스 변수와 클래스 변수로 구분할 수 있다.

 

  • 인스턴스 변수
    static이 붙지 않은 멤버 변수, 멤버 변수는 인스턴스를 생성해야 사용할 수 있고, 인스턴스를 만들 때 마다 새로 만들어진다.
  • 클래스 변수
    정적, static, 클래스 변수라고 부른다. static 키워드가 붙어있는 멤버 변수는 인스턴스와 무관하게 클래스에 바로 접근해서 사용이 가능하다. 클래스 자체에 소속되어 있다.
  • 지역 변수
    메서드 블럭안에 생성된 변수다. 메서드의 파라미터로 사용되는 매개 변수도 지역변수다. 메서드가 종료되면 사라진다.

ㅇ 변수의 생명주기

  • 인스턴스 변수
    인스턴스 내부에 존재하는 멤버 변수를 인스턴스 변수라고 한다. 인스턴스는 힙 영역을 사용하기 때문에 힙 영역의 가비지 컬렉션이 인스턴스를 제거하지 않는 한 게속 생존한다.
  • 클래스 변수
    메서드 영역의 static 영역에 보관되는 변수이다. 메서드 영역은 프로그램 전체에서 사용하는 공용 공간이라고 할 수 있는데, 클래스 변수는 해당 클래스가 jvm에 로딩 되는 순간 생성되고, jvm이 종료될 때 까지 생명주기가 이어진다.
  • 지역 변수
    스택 영역에 있는 스택 프레임안에 보관된다. 스택 프레임은 메서드가 실행될 때 생성되고, 메서드가 종료될 때 해당 스택 프레임이 제거되는데 이 때 지역 변수도 같이 사라진다.

따라서 생명주기는 클래스 변수 > 인스턴스 변수 > 지역변수 순으로 뒤로 갈 수록 생명주기가 짧아진다.

'Java' 카테고리의 다른 글

JAVA List, ArrayList, LinkedList  (3) 2024.10.03
JAVA Array(배열)  (4) 2024.10.02
JAVA 메모리 구조  (1) 2024.09.19
JAVA 캡슐화(Encapsulation)  (1) 2024.09.18
Java 인터페이스와 추상 클래스의 차이점  (1) 2024.02.28