- 변수의 메모리 할당 시점과 삭제 시점
1. 메모리 할당 시점
변수가 선언되면 해당 변수에 대한 메모리 공간이 할당되며, 이 때 변수의 타입에 따라 할당되는 메모리의 크기가 결정된다. 변수가 선언된 블록에서만 사용할 수 있으며 해당 블록이 실행될 때 메모리에 할당된다.
2. 삭제 시점
변수의 생명 주기는 해당 변수가 선언된 블록의 실행이 끝날 때까지이며, 블록이 실행되는 동안 변수는 유효하다. 블록이 실행을 마치면, 해당 블록에서 선언된 모든 변수들은 메모리에서 삭제된다. 객체가 변수일 경우, 해당 객체에 대한 참조 카운트가 0이 되면 가비지 컬렉터(Garbage Collector)가 메모리에서 삭제한다.
3. 블록 내에서의 메모리 재사용
Java는 스택(Stack)과 힙(Heap) 영역으로 메모리를 관리한다. 지역 변수는 스택에, 객체는 힙에 메모리가 할당된다. 블록이 실행될 때마다 스택의 상단이 변경되므로, 지역 변수는 스택의 상단에 계속해서 메모리가 재사용된다.
이 때문에 지역 변수의 메모리 할당과 삭제는 매우 빠르다. 그러나 객체의 경우, 힙에 메모리를 할당하므로 객체의 생성 및 삭제는 상대적으로 느리다.