[java] 객체의 생성과 소멸 방법을 알려주세요.

Java에서는 객체를 생성하고 소멸하는 방법이 몇 가지가 있습니다. 이 글에서는 new 키워드를 사용하여 객체를 생성하는 방법과 가비지 컬렉터를 통해 객체를 소멸시키는 방법 등에 대해 알아보겠습니다.

1. new 키워드를 사용하여 객체 생성하기

ClassName 객체명 = new ClassName();

위의 코드는 ClassName 클래스의 객체를 생성하는 예시입니다. new 키워드를 사용하여 객체를 생성할 때, 생성자(Constructor)를 호출하여 객체를 초기화합니다. 생성자는 클래스 내부에 선언되는 특별한 메소드입니다.

2. 객체 소멸과 가비지 컬렉터

Java에서는 개발자가 명시적으로 객체를 소멸시키는 방법은 제공되지 않습니다. 대신 가비지 컬렉터(Garbage Collector)가 자동으로 더 이상 참조되지 않는 객체를 소멸시킵니다.

가비지 컬렉터는 JVM(Java Virtual Machine)에 의해 관리되며, 프로그램 실행 중에 더 이상 사용되지 않는 객체들을 정리하는 역할을 합니다. 객체가 더 이상 어떤 변수에도 참조되지 않을 때, 가비지 컬렉터는 해당 객체를 소멸시킵니다.

소멸되는 객체는 finalize() 메소드를 호출하여 소멸 전에 정리할 수 있는 기회를 제공받을 수 있습니다. finalize() 메소드는 Object 클래스에 정의된 메소드로, 필요에 따라 재정의하여 사용할 수 있습니다.

3. 객체의 수명 주기 관리하기

객체의 수명 주기를 관리하기 위해서는 몇 가지 중요한 패턴과 규칙을 따라야 합니다. 대표적으로는 다음과 같습니다.

3.1. 지역 변수와 전역 변수

지역 변수는 특정 블록(메소드 내부 등)에서만 접근 가능한 변수입니다. 지역 변수는 해당 블록의 실행이 끝나면 자동으로 소멸됩니다. 전역 변수는 해당 클래스의 모든 메소드에서 접근 가능하며, 객체가 소멸될 때까지 유지됩니다.

3.2. 객체 참조 제거하기

만약 객체를 더 이상 사용하지 않는다면, 해당 객체의 참조를 명시적으로 제거하는 것이 좋습니다. 이렇게 하면 가비지 컬렉터가 해당 객체를 더 빨리 소멸시킬 수 있습니다. 예를 들어, 객체를 참조하는 변수에 null을 할당하면 해당 참조가 제거됩니다.

obj = null;

참고 자료