자바 의 쓰레기 회수 메커니즘 실례 분석

이 글 의 실례 는 자바 의 쓰레기 회수 메커니즘 을 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
눈여겨보다
프로그램 이 대상,배열 등 참조 형식 실 체 를 만 들 때 시스템 은 메모리 에 메모리 구역 을 할당 합 니 다.대상 은 이 메모리 구역 에 저 장 됩 니 다.이 메모리 가 더 이상 인용 변수 에 인용 되 지 않 을 때 이 메모 리 는 쓰레기 가 되 어 쓰레기 회수 체 제 를 기다 리 고 있 습 니 다.
쓰레기 회수 메커니즘 의 특징:
4.567917.쓰레기 회수 체 제 는 메모리 의 대상 만 회수 하고 그 어떠한 물리 적 자원(예 를 들 어 데이터 베이스 연결,네트워크 IO 등 자원)도 회수 하지 않 습 니 다4.567917.프로그램 은 쓰레기 회수 운행 을 정확하게 통제 하지 못 하고 쓰레기 수 거 는 적당 한 시기 에 쓰레기 수 거 를 한다.대상 이 영구적 으로 인용 을 잃 으 면 시스템 은 적당 한 시기 에 차지 하 는 메모 리 를 회수 합 니 다4.567917.쓰레기 회수 체 제 는 모든 대상 을 회수 하기 전에 먼저 finalize 방법 을 호출 합 니 다.이 방법 은 이 대상 을 다시 부활 시 킬 수 있 습 니 다(인용 변 수 를 이 대상 을 다시 인용 하 게 합 니 다).그래서 쓰레기 회수 체 제 는 수 거 를 취소 할 수 있 습 니 다두 대상 의 메모리 상태
활성화 상태:대상 이 생 성 되면 인용 변수 가 하나 이상 인 용 됩 니 다.이 대상 은 프로그램 에서 활성 상태 이 며,프로그램 은 변 수 를 참조 하여 이 대상 의 속성 과 방법 을 호출 할 수 있 습 니 다.
활성 상태:프로그램 에 있 는 대상 이 더 이상 인용 변수 가 없 으 면 활성 상태 로 들 어 갑 니 다.이 상태 에서 시스템 의 쓰레기 회수 체 제 는 이 대상 이 사용 하 는 메모 리 를 회수 하려 고 합 니 다.이 대상 을 회수 하기 전에 시스템 은 모든 활성 상태 대상 의 finalize 방법 으로 자원 청 소 를 합 니 다.만약 에 시스템 이 finalize 방법 을 호출 하여 인용 변 량 을 다시 이 대상 을 인용 하면 이 대상 은 다시 활성화 상태 로 변 합 니 다.그렇지 않 으 면 이 대상 은 사망 상태 에 들 어 갈 것 이다.
사망 상태:대상 이 모든 인용 변수 와 의 연결 이 차단 되 고 시스템 이 모든 대상 의 finalize 방법 을 호출 하여 이 대상 을 활성화 상태 로 만 들 지 않 으 면 이 대상 은 영구적 으로 인용 을 잃 고 마지막 에 사망 상태 로 변 합 니 다.한 대상 이 사망 상태 에 있 을 때 만 시스템 은 이 대상 이 차지 하 는 자원 을 진정 으로 회수 할 수 있다.

3 실전
코드

public class StatusTranfer
{
  public static void test()
  {
   String a = new String("   Java EE      "); //       ,              
   a = new String("  Java  ");  //      ,              ,            
  }
  public static void main(String[] args)
  {
   test();
  }
}

설명
한 대상 은 한 방법의 국부 변수 에 의 해 인 용 될 수도 있 고 다른 종류의 변수 에 의 해 인 용 될 수도 있 으 며 다른 대상 의 실례 변수 에 의 해 인 용 될 수도 있다.어떤 대상 이 다른 종류의 변수 에 인용 되 었 을 때,이 종류 가 소 멸 된 후에 야 이 대상 은 회복 가능 한 상태 에 들 어 갈 수 있다.어떤 대상 이 다른 대상 의 인 스 턴 스 변수 에 인 용 된 후에 이 대상 이 소 각 된 후에 야 이 대상 은 회복 가능 한 상태 에 들 어 갈 수 있 습 니 다.
더 많은 자바 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 에서 말 한 것 이 여러분 의 자바 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기