약한 참조 란 무엇입니까?

약한 참조는 객체와 객체의 연관성으로 인해 가비지 콜렉션 루틴으로 객체를 정리하지 못하게하는 메모리의 객체에 대한 참조입니다. 이 유형의 참조는 일반적으로 정상적인 가비지 콜렉션이 발생하지 못하게하는 특수한 조건이있을 때 메모리 누수를 제거하는 데 사용됩니다. 순환 참조를 사용하거나 캐시 또는 특수 구조에 외부 정보를 보유하는 프로그래밍 알고리즘은 약한 참조를 사용하면 유리합니다. 이러한 유형의 상황에서 약한 참조를 사용하면 사용되지 않은 참조 객체와 관련 약한 참조를 정리할 수 있습니다.

컴퓨터 프로그래밍에서, 강한 참조는 일반적으로 객체가 생성 될 때 기본적으로 생성되며 강한 참조가 실행 가능한 한 객체가 차지하는 메모리는 할당 된 상태로 유지됩니다. 강한 참조는 무효화되고 강한 참조 직후에 관련 개체의 메모리가 해제되고 해당 개체는 더 이상 프로그램에서 사용하지 않는 것으로 표시됩니다. 소켓 프로그래밍 또는 이미지 조작 응용 프로그램과 같은 특정 상황에서 작업 객체를 만드는 데 사용되는 클래스에는 특정 응용 프로그램에 필요한 추가 정보를 저장할 수있는 내장 용량이 없습니다. 연결 또는 그림과 같은 임시 오브젝트에 대한 추가 세부 사항은 보충 캐시 오브젝트에 저장하고 참조로 임시 오브젝트에 링크해야합니다. 강한 참조 대신 약한 참조를 사용하는 경우 추가 정보는 참조에 의해 바인딩되지 않으며 참조 객체가 실행 불가능한 것으로 표시되면 가비지 수집기에 의해 캐시에서 제거 될 수 있습니다.

약한 참조 클래스는 일반적으로 Java, Python, Perl, C # 및 .NET 프레임 워크를 포함하여 가비지 콜렉션 서브 시스템으로 보강 된 언어로 제공됩니다. 그러나 C ++에서 프로그래머는 일반적으로 메모리 정리를 담당합니다. 이 언어는 약한 참조 및 가비지 수집에서 제공하는 것과 동일한 기능 중 일부를 제공하여 부적절한 포인터 정리로 인한 메모리 누수를 줄이는 스마트 포인터 클래스를 구현했습니다.

메모리 관리를 더욱 용이하게하기 위해 가비지 수집 기능이있는 언어는 강력하거나 약한 참조 이외의 참조의 더 미세한 그래디언트를 제공하여 언어의 기능을 추가로 향상시킬 수 있습니다. 소프트 참조 및 팬텀 참조와 같은 데이터 유형이 이러한 언어에 포함될 수 있으며,이를 통해 다양한 수준의 객체 재 포획 또는 할당 해제 알림이 가능합니다. 자동화 된 가비지 콜렉션과 함께 언어를 사용하는 프로그래머는 응용 프로그램 성능을 향상시키기 위해 사용 가능한 모든 참조 클래스를 숙지해야합니다.

다른 언어

이 문서가 도움이 되었나요? 피드백 감사드립니다 피드백 감사드립니다

어떻게 도와 드릴까요? 어떻게 도와 드릴까요?