Java - 변수&Scope [IT 국비지원/구디 아카데미/김지훈 강사님]

hooon__dii·2023년 8월 13일
0

Java

목록 보기
2/11
post-thumbnail

변수

  • 변수( variable )란 값( vlaue )을 저장할 수 있는 메모리의 공간을 의미.
  • 값을 담을 수 있는 상자와 같다.
  • 변수는 말 그대로 '변하는 수'이기도 한다.
  • 변수를 사용하기 위해선 어떤 형태의 자료값을 담을 것인지 먼저 정해야 한다.

변수의 구성


변수의 범위(Scope)

변수는 선언된 영역의 바깥쪽 영역에서는 사용 할 수 없다.
변수는 '선언위치' 에따라 전역변수지역변수로 나뉜다.

  • 전역변수(Global variable)
    : 어느 위치에서든 호출하면 사용가능 함수 밖에서 선언하며 클래스 전체에서 사용이 가능하다.
    • 클래스 변수(static variable)
      • static으로 선언된 변수로 JVM에 의해 클래스가 메모리에 올라갈때 부터 프로그램 종료시 까지 유지한다.
      • 클래스가 여러번 생성되어도 static 변수는 처음 딱 한번만 생성
      • 객체를 따로 생성하지 않아도 사용이 가능하다
      • 한 클래스의 모든 인스턴스들이 공통적인 값을 가져야할때 사용
    • 인스턴스 변수(Instance variable)
      • 클래스 영역에 위치한 변수 중에서 static키워드를 가지지 않는 변수.
      • 클래스 영역에서 선언되어 객체가 생성 될 때마다 초기화 된다.
      • 그러므로 객체를 생성 후에 사용 가능하다.
      • 인스턴스 별로 다른 값을 가질 수 있으므로 각각의 인스턴스마다 고유의 값을 가져야할때 사용
  • 지역변수(Local variable)
    : 블럭 ( {...} )내에서 생성되어 그 블럭 내에서만 사용가능
    함수 안에 선언되어 해당 함수 안에서만 사용이 가능하다.
public class varScope{
	// 전역 변수
	int instanceVar = 0;	// 인스턴스 변수
    static int staticVar = 0;	// 클래스 변수
    
    void method(){
    	int localVar = 0; // 지역 변수
    }
}

변수의 생성주기 & 메모리 저장 영역

변수생성시기소멸시기저장 메모리
클래스 변수클래스가 메모리에 올라갈 때프로그램이 종료될 때Static 영역
인스턴스 변수인스턴스가 생성될 때인스턴스가 소멸할 때Heap 영역
지역 변수블록 내에서 변수의 선언문이 실행될때블록을 벗어날 때Stack 영역
*static영역은 method영역, class영역, code영역이라고도 불린다.

정리를 하면서 인스턴스의 개념을 다시 한번 생각해보게 되었다. 추후에 객체와 인스턴스의 차이점에 대해 정리를 해봐야겠다.
it국비지원 / 구디아카데미 / 김지훈 강사님

0개의 댓글