>Java >java지도 시간 >정적 필드는 언제 가비지 수집될 수 있나요?

정적 필드는 언제 가비지 수집될 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-11-30 18:51:19224검색

When Can Static Fields Be Garbage Collected?

정적 필드는 언제 가비지 컬렉션에 적합합니까?

정적 변수가 포함된 클래스는 클래스가 로드되는 동안 가비지 수집기에 의해 언로드되지 않습니다. 클래스가 더 이상 사용되지 않더라도 정적 변수는 프로그램이 진행되는 동안 메모리에 남아 있습니다.

class MyUtils {
   private static MyObject myObject = new MyObject();
   /*package*/static boolean doStuff(Params... params) {
       // do stuff with myObject and params...
   }
}

이 예에서 myObject는 정적 변수이므로 MyUtils 클래스가 언로드될 때까지 가비지 수집 대상이 아닙니다. 클래스는 언로드되지 않으므로 myObject는 프로그램 수명 동안 메모리에 유지됩니다.

예외

JLS 섹션 12.7 클래스 및 인터페이스 언로드에 따르면 클래스 또는 인터페이스는 언로드만 가능하다고 명시되어 있습니다. 정의된 클래스 로더가 가비지 수집기에서 회수될 수 있는 경우 언로드됩니다. 부트스트랩 로더가 로드한 클래스와 인터페이스는 언로드되지 않을 수 있습니다.

위 내용은 정적 필드는 언제 가비지 수집될 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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