phantomref.html

来自「java类库详细讲解」· HTML 代码 · 共 108 行

HTML
108
字号
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>Determining When an Object Will Be Reclaimed
(Java Developers Almanac Example)
</TITLE>
<META CONTENT="Patrick Chan" NAME="AUTHOR">
<META CONTENT="Code Examples from The Java Developers Almanac 1.4" NAME="DESCRIPTION">
<META CONTENT="Addison-Wesley/Patrick Chan" NAME="OWNER">
<META CONTENT="3/20/02" NAME="revision">
<STYLE TYPE="text/css">
<!--     BODY CODE  {font-family: Courier, Monospace;           font-size: 11pt}    TABLE, BODY          {font-family: Verdana, Arial, Helvetica, sans-serif;           font-size: 10pt}    PRE   {font-family: Courier, Monospace;           font-size: 10pt}    H3    {font-family: Verdana, Arial, Helvetica, sans-serif;           font-size: 11pt}    A.eglink {text-decoration: none}    A:hover.eglink {text-decoration: underline}    -->
</STYLE>
</HEAD>
<BODY>
<TABLE CELLSPACING="0" CELLPADDING="0" BORDER="0">
<TR>
<TD rowspan="3"><A HREF="/?l=ex"><IMG BORDER="0" ALIGN="BOTTOM" HSPACE="10" SRC="/egs/almanac14a.jpg"></A></TD><TD VALIGN="top"><font face="Times" size="6"><b>The Java Developers Almanac 1.4</b></font>
<br>
        Order this book from <a href="/cgi-bin/scripts/redirect.pl?l=ex&url=http://www.amazon.com/exec/obidos/ASIN/0201752808/xeo">Amazon</a>.
    </TD>
</TR>
<TR>
<TD align="right" valign="bottom">
<FORM method="get" action="/cgi-bin/search/find.pl">
<INPUT size="25" name="words" type="text"><INPUT value="Search" type="submit">
</FORM>
</TD>
</TR>
</TABLE>
<HR color="#6666cc">
<DIV ALIGN="LEFT">
<A HREF="/">Home</A>
    &gt;
    <A HREF="../index.html">List of Packages</A>
    &gt;
    <B><A HREF="../java.lang.ref/pkg.html">java.lang.ref</A></B><font color="#666666" SIZE="-2">
        &nbsp;[3 examples]
        </font>
</DIV><P>
  <h3>
    e108.  
    Determining When an Object Will Be Reclaimed</h3>

A phantom reference is used to determine when an object is just about
to be reclaimed. Phantom references are safer to use than finalization
because once an object is phantom reachable, it cannot be resurrected.


<pre>
    // Create the phantom reference.
    ReferenceQueue rq = new ReferenceQueue();
    PhantomReference pr = new PhantomReference(<font color="#0066ff"><i>object</i></font>, rq);
    
    // Wait until the object is about to be reclaimed.
    try {
        while (true) {
            Reference r = rq.remove();
            if (r == pr) {
                // The object is about to be reclaimed.
                // Clear the referent so that it can be reclaimed.
                r.clear();
            }
        }
    } catch (InterruptedException e) {
    }
</pre>
<P><table width="600" CELLSPACING="0" CELLPADDING="2" BORDER="0">
<tr>
<td bgcolor="#6666cc" align="center"><font color="#ffffff">
            &nbsp;Related Examples
        </font></td>
</tr>
</table>


e106. <a class="eglink" href="SoftRef.html?l=rel">
    Holding onto an Object Until Memory Becomes Low
</a>
<br>

e107. <a class="eglink" href="WeakRef.html?l=rel">
    Determining When an Object Is No Longer Used
</a>
<br>


<br>

<br>
<FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="0">
&copy; 2002 Addison-Wesley.
</FONT>
</BODY>
</HTML>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?