Heap 이란? JVM이 관리하는 프로그램 상에서 데이터를 저장하기 위해 런타임 시 동적으로 할당하여 사용하는 영역이다. new 연산자로 생성되는 객체를 저장한다. 힙 영역에 생성된 객체와 배열은 스택 영역의 변수나 다른 객체의 필드에서 참조한다. 참조하는 변수나 필드가 없다면 의미 없는 객체가 되어 GC의 대상이 된다. 객체의 생몰주기(LifeCycle)

JVM 상에서 프로그램이 동작하기 위해서는 OS로 부터 메모리를 할당 받아야 하는 데 이 영역을 보통 Runtime Data Area 라고 한다. Runtime Data Area 는 다음과 같이 구성이 되어 있다. Class Stack Heap Native Method Stack PC Register 하나씩 살펴보자. Class