>Java >java지도 시간 >시도해 보세요: 가비지 수집 및 종료

시도해 보세요: 가비지 수집 및 종료

WBOY
WBOY원래의
2024-07-31 12:27:031002검색

가비지 수집이 백그라운드에서 산발적으로 실행되므로
시연하는 것은 쉽지 않습니다. 하지만 한 가지 방법은
을 사용하는 것입니다. finalize() 메소드를 사용합니다. 객체가 재활용되려고 할 때 finalize()가 호출된다는 점을 기억하세요. 설명했듯이 객체가 더 이상 필요하지 않다고 해서 반드시 재활용되는 것은 아닙니다. 대신, 가비지 수집기는 일반적으로 사용되지 않는 개체가 많을 때 효율적으로 수집을 수행할 수 있을 때까지 기다립니다.

따라서 finalize() 메소드를 통한 가비지 수집을 시연하려면
다양한 물체를 생성하고 파괴하는 것이 바로 우리가 이 프로젝트에서 할 일입니다.

1 Finalize.java라는 새 파일을 만듭니다.

2 FDemo 클래스 만들기:
Image description

생성자는 인스턴스 변수 x를 알려진 값으로 설정합니다
의. 이 예에서는 x가 개체 ID로 사용됩니다.
메소드 finalize()는 객체가 재활용될 때 x 값을 표시합니다. 특히 흥미로운 것은 발전기( )입니다. 이 메서드는 FDemo 객체를 생성한 후 즉시 삭제합니다. 다음 단계에서 어떻게 사용되는지 확인하실 수 있습니다.

3 Finalize 클래스 만들기:
Image description

이 클래스는 ob라는 초기 FDemo 객체를 생성합니다. 그런 다음
을 사용하여 ob의 경우, ob에서 Generator()를 호출하여 100,000개의 객체를 생성합니다. 결과적으로 100,000개의 객체가 생성되고 폐기됩니다.
중간중간 다양한 지점에서 프로세스가 진행되면 가비지 수집이 발생합니다. 초기 여유 메모리 양, 운영 체제 등 다양한 요인이 빈도와 시기에 정확하게 영향을 미칩니다. 그러나 어느 시점에서는 finalize()에 의해 생성된 메시지가 표시되기 시작합니다. 볼 수 없다면 for 루프의 개수를 늘려 생성되는 객체 수를 늘려보세요.

위 내용은 시도해 보세요: 가비지 수집 및 종료의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.