팬텀 레퍼런스
Phantom reference팬텀 레퍼런스는 Java에서 메모리를 회수할 수 있는 일종의 레퍼런스입니다.팬텀 레퍼런스는 Java 프로그래밍 언어로 정의된 '비강' 레퍼런스의 강점 또는 수준 중 하나이며, 다른 것들은 약하고 [1]부드럽습니다.팬텀 참조는 Java에서 가장 약한 참조 수준입니다. 가장 강한 것부터 가장 약한 것까지 차례로, 강한 것, 부드러운 것, 약한 것, 팬텀입니다.
오브젝트가 완료된 후 팬텀 참조됩니다.
Java 8 이전 버전에서는 최종 참조용 메모리를 회수하기 전에 참조를 클리어해야 합니다.Java[2] 9가 변경되면 최종 참조에서 메모리를 즉시 회수할 수 있습니다.
사용하다
팬텀 참조는 주로 좁은 기술적 [3]용도로만 사용됩니다.첫 번째로, 이 기능을 사용할 수 있습니다.finalize
method. 최종화 중에 오브젝트가 부활하지 않음을 보증합니다.이렇게 하면 오브젝트가 부활하지 않았는지 확인하기 위해 두 번째 GC 사이클을 기다릴 필요 없이 단일 사이클에서 가비지가 수집됩니다.두 번째 용도는 메모리로부터 오브젝트가 삭제되었을 때를 정확하게 검출하는 것입니다(와 를 조합해 사용).ReferenceQueue
오브젝트), 예를 들어 이전 메모리가 해방될 때까지 대량의 메모리(예: 큰 이미지)의 할당을 연기하는 등 메모리가 사용 가능한 것을 확인합니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "java.lang.ref (Java Platform SE 8 )". Java™ Platform, Standard Edition 8 API Specification. Oracle. Retrieved 6 August 2016.
- ^ oracle.com, kim barrett at (28 December 2015). "hg: jdk9/hs-rt/jdk: 8071507: (ref) Clear phantom reference as soft and weak references do".
- ^ Nicholas, Ethan (May 4, 2006). "Understanding Weak References". www.java.net. Archived from the original on August 19, 2010. Retrieved October 1, 2010.