자바 의 쓰레기 회수 메커니즘 실례 분석
2245 단어 Java쓰레기 회수 메커니즘
눈여겨보다
프로그램 이 대상,배열 등 참조 형식 실 체 를 만 들 때 시스템 은 메모리 에 메모리 구역 을 할당 합 니 다.대상 은 이 메모리 구역 에 저 장 됩 니 다.이 메모리 가 더 이상 인용 변수 에 인용 되 지 않 을 때 이 메모 리 는 쓰레기 가 되 어 쓰레기 회수 체 제 를 기다 리 고 있 습 니 다.
쓰레기 회수 메커니즘 의 특징:
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();
}
}
설명한 대상 은 한 방법의 국부 변수 에 의 해 인 용 될 수도 있 고 다른 종류의 변수 에 의 해 인 용 될 수도 있 으 며 다른 대상 의 실례 변수 에 의 해 인 용 될 수도 있다.어떤 대상 이 다른 종류의 변수 에 인용 되 었 을 때,이 종류 가 소 멸 된 후에 야 이 대상 은 회복 가능 한 상태 에 들 어 갈 수 있다.어떤 대상 이 다른 대상 의 인 스 턴 스 변수 에 인 용 된 후에 이 대상 이 소 각 된 후에 야 이 대상 은 회복 가능 한 상태 에 들 어 갈 수 있 습 니 다.
더 많은 자바 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 에서 말 한 것 이 여러분 의 자바 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.