Object Instantiation Sequence는 객체를 할당하는 과정을 의미한다. 이 과정을 이해하기 위해서는 메모리 구조에 대해 먼저 이해를 해야한다.
메모리는 Code, Data, Stack, Heap 4가지 영역으로 되어있다. Code 영역은 이름 그대로 코드, 프로그램의 명령어들이 저장되는 공간이다. 컴파일러에 의해 생성된 기계어 코드가 저장되고, 프로그램을 실행하면 코드를 한줄한줄 읽으면서 실행된다. Data 영역은 Static 영역이라고도 불리며 전역 변수와 정적 변수가 저장되는 공간이다. 프로그램의 시작부터 종료될 때까지 Data 영역에 저장된 전역, 정적 변수들은 사라지지 않고 메모리에 계속 살아있다. Stack 영역은 각종 함수와 관련된 매개변수, 지역변수, 복귀해야 할 주소 등이 저장된 공간이다. 함수가 종료되면 Stack 영역에 있는 데이터들은 사라지고 메모리에서도 회수된다. Stack 영역은 Last In First Out이기 때문에 마지막에 들어온 함수가 먼저 불리게 된다. 마지막으로 Heap 영역은 동적으로 할당된 객체들이 저장되는 공간이다. 객체를 new를 사용해서 생성하면, Heap 영역에 할당이 되고, 이때 객체 자체와 객체에 포함되는 변수들을 같이 저장하게 된다. 사용하지 않는 객체들은 GC(Garbage Collector)에 의해 Heap 영역에서 회수된다.
다시 객체를 할당하는 과정으로 돌아오면, 객체를 할당하기 위해 new를 하게 되면 Heap 영역에 객체 그 자체화 객체가 가지고 있는 변수들을 저장하게 된다. 가령, 객체를 할당하기 전에 전역 변수, 정적 변수가 있다면 먼저 Stack 영역에 저장이되고, 그 다음에 Heap 영역에 객체가 할당이 된다. 객체가 더 이상 사용되지 않으면 GC에 의해 Heap 영역에서 회수된다. 하지만 프로그램이 종료될 때까지 전역 변수와 정적 변수는 메모리에서 살아있게 된다.