본문 바로가기
Language/JAVA

[JAVA]static 변수

by 바까 2020. 6. 18.
반응형

static 변수란 다른 용어로 '정적 변수'라고도 한다. static 변수는 자바뿐만 아니라 다른 언어에서도 비슷한 개념으로 사용하고 있는 변수로서 자바에서는 다른 멤버 변수처럼 클래스 내부에 선언한다.

변수를 선언할 때 자료형 앞에 static 예약어를 사용한다.

[문법]

stiatic 예약어 자료형 변수이름;

[예시]

static int serialNum;

static변수는 클래스 내부에 선언하지만,  다른 멤버 변수처럼 인스턴스가 생성될 때마다 새로 생성되는 변수가 아니다.

static 변수는 프로그램이 실행되어 메모리에 올라갔을 때 한번 메모리 공간이 할당된다. 그리고 그 값은 모든 인스턴스가 공유한다.

일반 멤버 변수는 인스턴스가 생성될 때마다 새로 생성되어 각각 다른 속성(예-studentName)을 가지게 되지만, static으로 선언한 변수는 인스턴스 생성과 상관없이 먼저 생성되고 그 값을 모든 인스턴스가 공유하게 되는 것 입니다.

이런 이유 때문에 static 변수를 클래스에 기반한 변수라고 해서 '클래스 변수(class variable)'라고 한다.

 

지금까지 static 변수, 정적변수, 클래스 변수라고 세가지 용어를 사용했습니다. 셋 모두 자바에서 static 변수를 의미합니다.

자바에서 static 변수를 클래스 변수라고 하는 이유는 인스턴스마다 생성되는 변수가 아니라 클래스에 속해 한번만 생성되는 변수이고 이를 여러 인스턴스가 공유하기 때문이다.

반응형

댓글