Software Development/Java

[Java] static 사용 방법, 메모리 영역

Mei99 2024. 5. 31. 16:00

static

: 공통으로 사용하겠다고 명시하는 지정자.

클래스가 생성될 때 만들어 지고, 클래스의 소속이 된다.

그래서 모든 인스턴스에서 동일한 값을 갖게 된다.

 

 

static 변수는 DATA 메모리 영역에 저장되어 공유할 수 있다.

만들어진 데이터는 더 만들지 않는다.

 

static변수를 사용할 때는, 인스턴스가 아닌 클래스명을 넣어준다.

예) StaticVar.count = 10; (O) / sv1.count = 10; (X)

 

 

StaticVar 클래스(만드는 클래스)

public class StaticVar {

	static int count = 1;
	int data;
	
	 void print() {
		 System.out.println("count :" + count);
		 System.out.println("data :" + data);
	 }
 }

 

 

StaticMain 클래스 (사용하는 클래스)

public class StaticMain {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		StaticVar sv1 = new StaticVar();
		
		StaticVar sv2 = new StaticVar();
		
		sv1.print();
		System.out.println();
		sv2.print();
		
		System.out.println();
		System.out.println();
		StaticVar.count = 10;
		
		sv1.print();
		sv2.print();
	}
}

 

실행 결과