And Brain said,

[Java] 자바로의 회귀 - [2] : 변수 본문

IT/Java & Kotlin & Spring boot

[Java] 자바로의 회귀 - [2] : 변수

The Man 2022. 10. 3. 22:40
반응형

 

 

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

 

변수는 클래스변수, 인스턴스변수, 지역변수 이렇게 세 종류가 있고 이를 결정짓는 것은 "변수의 선언된 위치"다.

 

멤버변수를 제외한 나머지 변수들은 모두 지역변수이며, 멤버변수 중 static이 붙은 것이 클래스변수, 붙지 않은 것이 인스턴스변수다.

 

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

 

1. 인스턴스변수(instance variable)

 

클래스 영역에 선언되며, 클래스의 인스턴스를 생성할 때 만들어진다. 인스턴스는 독립적인 저장공간을 가지므로 서로 다른 값을 가질 수 있다.

 

2. 클래스변수(class variable)

 

인스턴스변수 앞에 static을 붙인다. 인스턴스마다 독립적인 저장공간을 갖는 인스턴스변수와 달리, 클래스변수는 모든 인스턴스가 공통된 저장공간(변수)을 공유한다.

인스턴스를 생성하지 않고도 '클래스이름.클래스변수'와 같은 방식으로 사용 가능.

 

3. 지역변수(local variable)

 

메서드 내에 선언되어 메서드 내에서만 사용 가능하며, 메서드가 종료되면 소멸되어 사용할 수 없다. 블럭 내에 선언된 지역변수는, 블럭 { } 내에서만 사용 가능하다.

 

인스턴스변수는 인스턴스가 생성될 때 마다 생성되므로 인스턴스마다 각기 다른 값을 유지할 수 있지만,
클래스 변수는 모든 인스턴스가 하나의 저장공간을 공유하므로, 항상 공통된 값을 갖는다.

 

 

 

 

참고

 

Java의 정석 - 남궁 성 지음

 

 

 

Thanks for watching, Have a nice day.

 

반응형
Comments