JavaTM Platform
Standard Ed. 6

java.lang.ref
클래스 PhantomReference<T>

java.lang.Object 
  상위를 확장 java.lang.ref.Reference <T>
      상위를 확장 java.lang.ref.PhantomReference<T>


public class PhantomReference<T>
extends Reference <T>

팬텀 참조 객체입니다. 팬텀 참조 객체가 큐에 넣어지는 것은, 큐에 넣어 두지 않으면 그러한 리파렌트가 재생될 가능성이 있으면(자) 수집가가 판단했을 때입니다. 팬텀 참조 객체는, 대부분의 경우, Java 의 finalize 기구보다 유연한 방법으로, 프리모르템크리압아크션의 스케줄링을 실시하기 위해서(때문에) 사용됩니다.

어떤 시점으로, 팬텀 참조의 리파렌트가「팬텀 도달 가능」이라고 가비지 컬렉터가 판단했을 경우, 그 시점 또는 그 당분간 나중에 가비지 컬렉터는 그 참조를 큐에 넣습니다.

재생 가능한 객체를 그대로 해 두기 위해서(때문에), 팬텀 참조의 리파렌트를 꺼낼 수 없습니다. 팬텀 참조의 get 메소드는, 항상 null 를 돌려줍니다.

소프트 참조 및 약참조와 달리, 팬텀 참조는 그것들이 큐에 넣어질 때 가비지 컬렉터에 의해 자동적으로 클리어 되지 않습니다. 팬텀 참조를 개입시켜 도달 가능한 객체는, 모든 팬텀 참조가 클리어 되는지, 팬텀 참조 자신이 도달 불가능하게 될 때까지 도달 가능합니다.

도입된 버젼:
1.2

생성자 의 개요
PhantomReference (T  referent, ReferenceQueue <? super T > q)
          지정된 객체를 참조해, 지정된 큐에 등록되어 있는 새로운 팬텀 참조를 작성합니다.
 
메소드의 개요
 T get ()
          참조 객체의 리파렌트를 돌려줍니다.
 
클래스 java.lang.ref. Reference 로부터 상속된 메소드
clear , enqueue , isEnqueued
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

PhantomReference

public PhantomReference(T  referent,
                        ReferenceQueue <?  super T > q)
지정된 객체를 참조해, 지정된 큐에 등록되어 있는 새로운 팬텀 참조를 작성합니다.

null 큐로 팬텀 참조를 작성할 수가 있습니다만, 작성된 참조는 전혀 도움이 되지 않습니다. 작성된 참조의 get 메소드는 항상 null 를 돌려줍니다. 또, 큐를 가지지 않기 때문에, 큐에 들어가지 않습니다.

파라미터:
referent - 새로운 팬텀 참조가 참조하는 객체
q - 참조가 등록되는 큐. 등록이 필요없는 경우는 null
메소드의 상세

get

public T  get()
참조 객체의 리파렌트를 돌려줍니다. 팬텀 참조의 리파렌트는 항상 액세스 불가능하기 때문에, 이 메소드는 항상 null 를 돌려줍니다.

오버라이드(override):
클래스 Reference <T > 내의 get
반환값:
null

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.