Language/JAVA

[JAVA]static 변수

바까 2020. 6. 18. 13:58
반응형

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

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

[문법]

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

[예시]

static int serialNum;

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

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

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

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

 

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

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

반응형