1. 메모리 할당
프로그램이 사용할 수 있게 운영체제가 메모리를 할당한다
=> 저 수준의 언어는 이를 개발자가 명시적으로 처리해준다.
=> 고 수준의 언어는 개발자가 이를 신경쓰지 않아도 된다.
변수와 함수를 선언하고 함수 표현식을 이용하는 것 모두 메모리를 할당하는 과정
2. 메모리 사용
할당된 메모리를 실제로 프로그램이 사용하는 단계이다
=> 개발자가 필요에 따라 읽기와 쓰기 작업을 진행한다.
3. 메모리 해제
프로그램에서 필요하지 않은 메모리 전체를 되돌려 주어 다시 사용하게 만드는 단계
=> 메모리 할당 작업과 마찬가지로 저수준은 이를 명시한다.
가비지 컬렉션이란 사용이 완료된 메모리를 정리하는 것이다.
고수준의 언어에서는 대부분 가비지 컬렉터
라는 내장된 소프트웨어가 진행한다.
이것의 역할은 메모리 할당을 추적하고 언제 할당된 메모리가 더이상 사용하지 않는지 파악해서 자동으로 반환하는 것이다.
가비지 컬렉션 알고리즘의 핵심 개념은 참조
이다.
A라는 메모리를 통해 B라는 메모리에 접근할 수 있다면 B는 A에 참조된다
참조가 하나도 없는 경우 가비지 컬렉션의 대상으로 간주한다.