Java의 참조 계층은 무엇입니까?
SoftReferences와 WeakReferences
토의하는 동안 Java에서 참조를 사용하면 "소프트 참조" 및 "약한 참조"라는 용어를 자주 접하게 됩니다. 이 두 가지 유형의 참조는 정확히 무엇을 나타내며, 어떻게 다른가요?
Ethan Nicholas의 "약한 참조 이해" 기사에서 설명했듯이 약한 참조는 객체를 메모리에 유지할 만큼 강력하지 않은 참조입니다. . 이는 개체를 가리키는 강력한 참조가 없으면 가비지 수집기가 해당 개체를 제거할 수 있음을 의미합니다.
반대로 소프트 참조는 약한 참조와 비슷하지만 참조된 개체를 덜 버리는 경향이 있습니다. 부드럽게 접근 가능한 객체는 사용 가능한 메모리가 충분한 한 메모리에 남아 있습니다. 메모리가 부족해지면 가비지 수집기가 소프트 참조를 정리하여 공간을 확보할 수 있습니다.
이러한 속성은 메모리가 허용하는 한 빠른 액세스를 위해 객체를 저장할 수 있는 캐시에 소프트 참조를 이상적으로 만듭니다. 메모리가 부족하면 가장 덜 중요한 객체(부드럽게 접근 가능한 객체)가 제거됩니다.
또한 Peter Kessler는 Sun JRE가 소프트 참조를 약한 참조와 다르게 처리한다는 사실을 관찰했습니다. 클라이언트 JRE는 더 작은 메모리 공간을 유지하기 위해 소프트 참조 제거에 우선순위를 두는 반면, 서버 JRE는 소프트 참조를 제거하는 대신 힙을 확장하여 성능에 중점을 둡니다.
위 내용은 Java에서 소프트 참조와 약한 참조의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!