약한 참조는 무엇입니까?
약한 참조는 물체와의 연관성으로 인해 쓰레기 수집 루틴에 의해 물체가 청소되는 것을 막지 않는 메모리의 물체에 대한 참조입니다. 이 유형의 기준은 일반적으로 정상적인 쓰레기 수집이 발생하는 것을 방해하는 특수 조건이 존재할 때 메모리 누출을 제거하는 데 일반적으로 사용됩니다. 약한 참조를 사용하여 순환 참조를 사용하거나 외부 정보를 캐시 또는 특수 구조 이점을 보유하는 프로그래밍 알고리즘. 이러한 유형의 상황에서 약한 참조를 활용하면 사용하지 않은 참조 물체와 관련 약한 참조를 정리할 수 있습니다.
컴퓨터 프로그래밍에서, 객체가 생성 될 때 기본적으로 강력한 참조는 일반적으로 생성되며, 강력한 참조가 실행 가능한 한 객체가 차지하는 메모리는 할당 된 상태로 유지됩니다. 강력한 참조가 무효화되고 관련이 있습니다강력한 참조가 끝나고 객체의 기억이 해제되고 그 객체는 더 이상 프로그램에서 사용되지 않는 것으로 표시됩니다. 소켓 프로그래밍 또는 이미지 조작 애플리케이션과 같은 특정 상황에서 작업 객체를 작성하는 데 사용되는 클래스에는 특정 응용 프로그램이 필요로하는 추가 정보를 저장할 수있는 내장 용량이 없습니다. 연결 또는 그림과 같은 과도 객체에 대한 추가 세부 사항은 보충 캐시 객체에 저장하고 참조에 의해 과도 객체에 연결되어야합니다. 강한 참조 대신 약한 참조가 사용되는 경우, 추가 정보는 참조에 의해 구속되지 않으며 참조 객체가 생존 할 수없는 것으로 표시되면 쓰레기 수집기에 의해 캐시에서 제거 될 수 있습니다.
.약한 참조 클래스는 일반적으로 Java, Python, Perl, C#및 .NET 프레임 워크를 포함한 쓰레기 수집 서브 시스템에서 보강하는 언어로 제공됩니다. 그러나 C ++에서는 프로그래머가 일반적으로 해상됩니다메모리 정리를 보장 할 수 있습니다. 이 언어는 약한 참조 및 쓰레기 수집이 제공하는 것과 동일한 기능을 제공하는 스마트 포인터 클래스를 구현하여 부적절한 포인터 정리로 인한 메모리 누출을 줄이는 데 도움이됩니다.
.메모리 관리를 더욱 촉진하기 위해 쓰레기 수집 시설을 갖춘 언어는 강력하거나 약한 참조 이외의 참고 문헌을 제공하여 언어의 기능을 추가로 향상시킬 수 있습니다. 소프트 참조 및 팬텀 참조와 같은 데이터 유형은 이러한 언어에 포함될 수 있으므로 다양한 수준의 객체 요약 또는 거래 알림이 가능합니다. 자동 가비지 컬렉션이있는 언어를 사용하는 프로그래머는 응용 프로그램 성능을 향상시키기 위해 사용할 수있는 모든 참조 클래스에 익숙해 져야합니다.