본문 바로가기
IT/Java

자바 객체의 생명주기

by Cyber_ 2024. 12. 2.

자바에서 객체의 생명 주기는 크게 네 단계로 나눌 수 있습니다. 이러한 단계를 이해하는 것은 메모리 관리 및 효율적인 자바 프로그래밍에서 매우 중요합니다.

1. 객체 생성

객체의 생명주기는 new 키워드를 사용하여 객체가 생성되는 순간부터 시작됩니다. 이때 생성자가 호출되어 객체의 초기 상태가 설정됩니다 예를 들어, Person person = new Person(); 코드는 Person 타입의 새 객체를 메모리에 할당하고, Person 클래스의 생성자를 호출합니다.

2. 사용

객체가 생성된 후, 해당 객체를 참조하는 변수를 통해 접근하고 객체의 메서드를 호출하거나 변수를 수정하는 등의 작업을 수행할 수 있습니다. 이 단계에서 객체는 활동적인 상태에 있으며, 어떤 작업을 수행하든 해당 객체가 메모리에 존재하는 한 계속 접근 가능합니다.

3. 숨김 상태

객체가 더 이상 필요하지 않게 되거나 참조가 끊기면 객체는 숨김 상태에 들어갑니다. 예를 들어, 참조하는 변수가 메소드의 스코프를 벗어나거나 더 이상 그 객체를 참조하지 않을 때 이상태에 도달합니다. 숨김 상태의 객체는 여전히 메모리에 존재하지만, 어떤 변수도 이 객체를 참조하지 않기 때문에 접근할 수 없게 됩니다.

4. 소멸

자바에서는 가비지 컬렉터가 메모리 관리를 담당합니다. 가비지 컬렉터는 숨김 상태에 있는 객체를 주기적으로 검사하여 더 이상 사용되지 않는 객체의 메모리를 해제합니다. 이 과정을 통해 객체는 완전히 소멸되어 시스템의 자원을 회수하게 됩니다. 객체의 소멸 지점은 가비지 컬렉터에 의해 결정되므로, 프로그래머가 직접 제어할 수 없습니다.