본문 바로가기
JAVA

자바 Static

by sxlvxrjxms2s2itsmes2s2 2022. 7. 12.

Java 에서 static를 사용한다는 것은 메모리에 한번 할당되어 프로그램이 종료될 때 해제된다는 것을 의미한다.

즉 객체(인스턴스)에 소속된 멤버가 아니라 클래스 자체에 고정된 멤버이다.

 

static은 클래스 호출, 객체 생성을 따로 하지 않고 바로 사용할 수 있어 사용성이 좋다.

잘 변하지 않는 변수나 메서드를 사용할 때 주로 사용한다.

그러나 static는 메모리를 할당해놓고 사용하는 것이기 때문에 너무 많이 사용하면 프로그램이 무거워진다.

 

static - 주로 클래스들이 할당

         - 모든 객체가 메모리를 공유

heap - 주로 객체들이 할당

         - 메모리를 공유하지 않음

 

일반적으로 우리가 만든 class는 static영역에 생성되고, new연산을 통해 생성한 객체는 Heap영역에 생성된다.

 

static선언이 되어있는 메서드는 객체(new)를 생성하지 않아도 접근이 가능하다.

public class Java {
	
	public static void helloWorld() {
		System.out.println( "Hello World" );
	}
	
	public static void main(String[] args) {		

		helloWorld(); //메서드 호출		
	}
}

static선언이 되어있지 않은 메서드는 객체를 생성 후 메서드를 호출해야 한다.

public class Javava {
	
	public void helloWorld() {
		System.out.println( "Hello World" );
	}
	public static void main(String[] args) {
		
		// helloWorld();  //메서드 호출 에러; 메인 메서드는 static 메서드만 호출할 수 있기 때문에
		
		Javava js = new Javava(); //객체 생성 후 메서드 호출
		js.helloWorld();	
	}
}

'JAVA' 카테고리의 다른 글

JAVA 상속과 생성자 상속  (0) 2022.07.15
JAVA 생성자  (0) 2022.07.15