[Java] 클래스 변수, 인스턴스 변수, 지역 변수

유빈·2024년 10월 1일

생존 Java

목록 보기
2/3
post-thumbnail

선언 위치에 따른 변수의 종류

변수의 종류선언위치생성시기(메모리 할당 시기)
클래스 변수클래스 영역클래스가 메모리에 올라갈 때
인스턴스 변수클래스 영역인스턴스가 생성될 때
지역 변수클래스 이외의 영역 (메서드, 생성자, 초기화 블럭)변수 선언문이 수행되었을 때

변수의 종류를 결정짓는 것은 '변수가 선언된 위치'이다.



인스턴스 변수

  • 인스턴스가 생성될 때 생성됨
  • 인스턴스 변수의 값을 읽어오거나 저장하려면 인스턴스를 먼저 생성해야 함
  • 각각의 인스턴스마다 고유의 값을 가져야할 때는 인스턴스 변수로 선언

클래스 변수

  • static + 인스턴스 변수
  • 모든 인스턴스가 공통된 값을 공유
  • 클래스가 로딩될 때 생성되어 (메모리에 딱 한번 올라감) 종료될 때까지 유지되는 클래스 변수는 public을 붙여 전역 변수로 생성 가능
  • 인스턴스를 생성하지 않고, 클래스이름.클래스변수명을 통해 접근 가능

지역 변수

  • 메소드 내에서 선언되며 메소드 내에서만 사용 가능
  • 메소드가 실행될 때, 메모리를 할당받으며 메소드가 끝나면 소멸되어 사용 불가


출처: 에반황 - [JAVA] 자바의 변수

profile
🌱

0개의 댓글