Java에서 SoftReference와 WeakReference의 차이점 이해
Java는 SoftReference와 WeakReference라는 두 가지 유형의 참조를 제공합니다.
SoftReferences
Ethan Nicholas가 약한 참조 이해에서 설명했듯이 SoftReference는 강력하게 참조되지는 않지만 여전히 가치 있는 객체를 나타냅니다. . 가비지 수집기는 메모리가 충분하다면 소프트 참조 개체를 유지합니다. 따라서 SoftReferences는 메모리가 부족해질 때까지 자주 사용되지 않는 객체를 보관할 수 있는 캐시에 이상적입니다.
JVM(Java Virtual Machine)에서 Peter Kessler는 클라이언트와 서버 JRE 처리의 차이점을 지적합니다. 클라이언트 JRE는 작은 메모리 공간에 우선순위를 두고 SoftReferences를 적극적으로 지워 힙 확장을 방지합니다. 반대로, 서버 JRE는 성능을 우선시하고 힙 확장을 희생하더라도 SoftReferences를 유지하려고 시도합니다.
WeakReferences
SoftReferences와 달리 WeakReferences는 힙 확장이 필요한 객체를 지정합니다. 가비지 수집 즉시 폐기됩니다. 임시 리소스나 쉽게 다시 생성할 수 있는 개체와 같이 개체의 지속적인 존재가 중요하지 않은 시나리오에서 사용됩니다.
WeakReferences는 두 개체가 서로에 대한 강력한 참조를 보유하는 순환 참조를 해제하는 데 편리합니다. 가비지 수집을 방지합니다. 한 개체에 대해 WeakReference를 도입하면 순환성이 깨져 다른 강력한 참조가 없을 때 두 개체가 모두 가비지 수집될 수 있습니다.
주요 차이점
위 내용은 Java에서 SoftReferences와 WeakReferences를 언제 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!