JAVA
[Java.2-3] 객체 소멸과 가비지
식빵민
2022. 4. 15. 19:50
- 객체 소멸
- new에 의해 할당된 객체 메모리를 자바 가상 기계(JVM)의 가용 메모리로 돌려 주는 행위
- 자바 응용 프로그램은 임의로 객체를 소멸 할 수 없음
- 객체 소멸은 JVM의 고유한 역할
- C/C++에서와 다르게 할당받는 객체를 개발자가 직접 되돌려 주지 않아도 됨.
- 가비지
- 가리키는 레퍼런스가 한도 없는 객체
- 누구도 사용할 수 없게 된 메모리
- 가비지 컬렉션 : JVM의 가비지 컬렉터가 자동으로 가비지 수집 반환
public class GarbageEx{
public class void main(String args[]){
String a = new String("Good");
String b = new String("Better");
String c = new String("Best");
a = null;
b = c;
}
}//Good 이 저장된 객체, Better 가 저장된 객체는 가비지가 됨
- 가비지 컬렉션
- 자바에서 가비지를 회수하여 자동 회수하는 과정
- 가비지 컬렉션 스레드의 의해 수행
- 개발자에 의한 강제 가비지 컬렉션
- JVM에 가비지 컬렉션 요청 (JVM이 가비지 컬렉션 시점을 전적으로 판단)
- System 또는 Runtime 객체의 gc() 메소드 호출
System.gc();
Runtime.gc();