
JVM 의 메모리 영역은 static
, stack
, heap
영역으로 나뉜다.
static
영역
- 어플리케이션에서 전역으로 사용하는 데이터를 저장
- 어플리케이션 전역에서 접근 가능해야 하므로 GC 가 관리하지 않는다.
- 어플리케이션이 실행될 때 모든 클래스들을 읽어
static
영역에 저장한다.
- 모든 곳에서 접근 가능하므로 객체지향적이지 않아 JAVA 에서는 사용을 지양한다.
- 과도하게 사용할 경우 프로그램이 종료될때까지 남아있으므로 성능에 안좋은 영향을 미칠 수 있다.
stack
영역 (그림 X)
heap
영역
- 객체의 인스턴스 들이 저장된다.
- 어플리케이션에 관계 없이 생성과 소멸이 일어나는 객체이므로 GC 의 관리대상이다.
- 객체의 인스턴스와 클래스는 다른 영역에 저장되므로 인스턴스의 메서드에는 static 변수를 생성할 수 없다.
https://mangkyu.tistory.com/47