메모리 관점에서 static이란?

김수환·2023년 7월 1일
0

Static

: 정적인

  • Static 멤버변수 (클래스 변수) : 메모리상에 하나만 존재하여 하나의 변수를 모든 객체가 공유한다.
  • Static 메소드 : 객체를 생성하지 않고도 메모리에 할당시켜 호출이 가능하다. 메소드 내에서는 멤버변수를 사용할 수 없다.

JAVA 메모리 공간 ( Runtime Data Area)

Method, Heap, Stack, PC Register, Native Method Stack

Static 변수는 Method에 저장된다.

  • Method는 클래스 정보, 전역, static 정보등을 저장하는 공간이다.
  • JVM이 실행되면서 생성되는 공간이다.
  • 모든 스레드에서 정보를 공유한다.
  • Heap, Stack 공간과 달리 Garbage Collector가 간섭하지 않는다.


static으로 선언한 변수, 메소드는 프로그램 실행 시에 메모리에 올라가 종료될 때 까지 메모리에 남아 있다.
즉, static의 무분별한 사용은 메모리 공간 낭비를 야기 할 수 있다.

profile
hello human

0개의 댓글