<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>JavaObject (Diagnostic Tool Framework for Java&amp;trade;)</title>
<meta name="keywords" content="com.ibm.dtfj.java.JavaObject interface">
<meta name="keywords" content="getJavaClass()">
<meta name="keywords" content="isArray()">
<meta name="keywords" content="getArraySize()">
<meta name="keywords" content="arraycopy()">
<meta name="keywords" content="getSize()">
<meta name="keywords" content="getHashcode()">
<meta name="keywords" content="getPersistentHashcode()">
<meta name="keywords" content="getID()">
<meta name="keywords" content="getSections()">
<meta name="keywords" content="getReferences()">
<meta name="keywords" content="getHeap()">
<meta name="keywords" content="equals()">
<meta name="keywords" content="hashCode()">
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="JavaObject (Diagnostic Tool Framework for Java&trade;)";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/JavaObject.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><strong>Diagnostic Tool Framework for Java&trade;</strong></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/ibm/dtfj/java/JavaMonitor.html" title="interface in com.ibm.dtfj.java"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/ibm/dtfj/java/JavaReference.html" title="interface in com.ibm.dtfj.java"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/ibm/dtfj/java/JavaObject.html" target="_top">Frames</a></li>
<li><a href="JavaObject.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">com.ibm.dtfj.java</div>
<h2 title="Interface JavaObject" class="title">Interface JavaObject</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public interface <span class="typeNameLabel">JavaObject</span></pre>
<div class="block">Represents a Java Object.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/ibm/dtfj/java/JavaObject.html#arraycopy-int-java.lang.Object-int-int-">arraycopy</a></span>(int&nbsp;srcStart,
         <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" target="_blank" title="class or interface in java.lang">Object</a>&nbsp;dst,
         int&nbsp;dstStart,
         int&nbsp;length)</code>
<div class="block">Copies data from the image array into a local Java array.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/ibm/dtfj/java/JavaObject.html#equals-java.lang.Object-">equals</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" target="_blank" title="class or interface in java.lang">Object</a>&nbsp;obj)</code>
<div class="block">Compares the argument to the receiver, and answers true
 if they represent the <em>same</em> object using a class
 specific comparison.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/ibm/dtfj/java/JavaObject.html#getArraySize--">getArraySize</a></span>()</code>
<div class="block">Get the number of elements in this array.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/ibm/dtfj/java/JavaObject.html#getHashcode--">getHashcode</a></span>()</code>
<div class="block">Fetch the basic hash code for the object.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../com/ibm/dtfj/java/JavaHeap.html" title="interface in com.ibm.dtfj.java">JavaHeap</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/ibm/dtfj/java/JavaObject.html#getHeap--">getHeap</a></span>()</code>
<div class="block">Gets the heap where this object is located.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../com/ibm/dtfj/image/ImagePointer.html" title="interface in com.ibm.dtfj.image">ImagePointer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/ibm/dtfj/java/JavaObject.html#getID--">getID</a></span>()</code>
<div class="block">The ID of an object is a unique address is memory which identifies the object.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="../../../../com/ibm/dtfj/java/JavaClass.html" title="interface in com.ibm.dtfj.java">JavaClass</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/ibm/dtfj/java/JavaObject.html#getJavaClass--">getJavaClass</a></span>()</code>
<div class="block">Get the JavaClass instance which represents the class of this object.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/ibm/dtfj/java/JavaObject.html#getPersistentHashcode--">getPersistentHashcode</a></span>()</code>
<div class="block">Fetch the basic hash code of the object in the image.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" target="_blank" title="class or interface in java.util">Iterator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/ibm/dtfj/java/JavaObject.html#getReferences--">getReferences</a></span>()</code>
<div class="block">Get the set of references from this object.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" target="_blank" title="class or interface in java.util">Iterator</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/ibm/dtfj/java/JavaObject.html#getSections--">getSections</a></span>()</code>
<div class="block">An object is represented in the Java runtime by one or more regions of memory.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/ibm/dtfj/java/JavaObject.html#getSize--">getSize</a></span>()</code>
<div class="block">Get the number of bytes of memory occupied by this object on the heap.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/ibm/dtfj/java/JavaObject.html#hashCode--">hashCode</a></span>()</code>
<div class="block">Answers an integer hash code for the receiver.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../com/ibm/dtfj/java/JavaObject.html#isArray--">isArray</a></span>()</code>
<div class="block">Is this object an array ?</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="getJavaClass--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getJavaClass</h4>
<pre><a href="../../../../com/ibm/dtfj/java/JavaClass.html" title="interface in com.ibm.dtfj.java">JavaClass</a>&nbsp;getJavaClass()
                throws <a href="../../../../com/ibm/dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></pre>
<div class="block">Get the JavaClass instance which represents the class of this object.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the JavaClass instance which represents the class of this object</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../com/ibm/dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></code></dd>
</dl>
</li>
</ul>
<a name="isArray--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isArray</h4>
<pre>boolean&nbsp;isArray()
         throws <a href="../../../../com/ibm/dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></pre>
<div class="block">Is this object an array ?</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if the receiver represents an instance of an array, or
 false otherwise</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../com/ibm/dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></code></dd>
</dl>
</li>
</ul>
<a name="getArraySize--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getArraySize</h4>
<pre>int&nbsp;getArraySize()
          throws <a href="../../../../com/ibm/dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></pre>
<div class="block">Get the number of elements in this array.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the number of elements in this array
 <p></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../com/ibm/dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></code></dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" target="_blank" title="class or interface in java.lang">IllegalArgumentException</a></code> - if the receiver is not an array</dd>
</dl>
</li>
</ul>
<a name="arraycopy-int-java.lang.Object-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>arraycopy</h4>
<pre>void&nbsp;arraycopy(int&nbsp;srcStart,
               <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" target="_blank" title="class or interface in java.lang">Object</a>&nbsp;dst,
               int&nbsp;dstStart,
               int&nbsp;length)
        throws <a href="../../../../com/ibm/dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a>,
               <a href="../../../../com/ibm/dtfj/image/MemoryAccessException.html" title="class in com.ibm.dtfj.image">MemoryAccessException</a></pre>
<div class="block">Copies data from the image array into a local Java array.
 The dst object must be an array of the appropriate type --
 a base type array for base types, or a JavaObject array
 for reference arrays.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>srcStart</code> - index in the receiver to start copying from</dd>
<dd><code>dst</code> - the destination array</dd>
<dd><code>dstStart</code> - index in the destination array to start copying into</dd>
<dd><code>length</code> - the number of elements to be copied</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../com/ibm/dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></code></dd>
<dd><code><a href="../../../../com/ibm/dtfj/image/MemoryAccessException.html" title="class in com.ibm.dtfj.image">MemoryAccessException</a></code></dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html?is-external=true" target="_blank" title="class or interface in java.lang">NullPointerException</a></code> - if dst is null</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IllegalArgumentException.html?is-external=true" target="_blank" title="class or interface in java.lang">IllegalArgumentException</a></code> - if the receiver is not an array,
 or if dst is not an array of the appropriate type</dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/IndexOutOfBoundsException.html?is-external=true" target="_blank" title="class or interface in java.lang">IndexOutOfBoundsException</a></code> - if srcStart, dstStart, or length
 are out of bounds in either the receiver or the destination array</dd>
</dl>
</li>
</ul>
<a name="getSize--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSize</h4>
<pre>long&nbsp;getSize()
      throws <a href="../../../../com/ibm/dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></pre>
<div class="block">Get the number of bytes of memory occupied by this object on the heap.
 The memory may not necessarily be contiguous</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../com/ibm/dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></code></dd>
</dl>
</li>
</ul>
<a name="getHashcode--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHashcode</h4>
<pre>long&nbsp;getHashcode()
          throws <a href="../../../../com/ibm/dtfj/image/DataUnavailable.html" title="class in com.ibm.dtfj.image">DataUnavailable</a>,
                 <a href="../../../../com/ibm/dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></pre>
<div class="block">Fetch the basic hash code for the object. This is the hash code which
 would be returned if a Java thread had requested it. Typically the hash 
 code is based on the address of an object, and may change if the object
 is moved by a garbage collect cycle.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the basic hash code of the object in the image.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../com/ibm/dtfj/image/DataUnavailable.html" title="class in com.ibm.dtfj.image">DataUnavailable</a></code> - if the hash code cannot be determined</dd>
<dd><code><a href="../../../../com/ibm/dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../com/ibm/dtfj/java/JavaObject.html#getPersistentHashcode--"><code>getPersistentHashcode()</code></a></dd>
</dl>
</li>
</ul>
<a name="getPersistentHashcode--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPersistentHashcode</h4>
<pre>long&nbsp;getPersistentHashcode()
                    throws <a href="../../../../com/ibm/dtfj/image/DataUnavailable.html" title="class in com.ibm.dtfj.image">DataUnavailable</a>,
                           <a href="../../../../com/ibm/dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></pre>
<div class="block">Fetch the basic hash code of the object in the image. This hash code
 is guaranteed to be persistent between multiple snapshots of the same Image.
 If the hash code cannot be determined, or if the hash code for this object
 could change between snapshots, an exception is thrown.
 <p>
 <i>If the VM uses a 'hasBeenHashed' bit, the value of this bit can be
 inferred by calling getPersistentHashcode(). If the persistent hash code
 is not available, then the 'hasBeenHashed' bit has not been set, and the
 hash of the object could change if the object moves between snapshots</i></div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the basic hash code of the object in the image</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../com/ibm/dtfj/image/DataUnavailable.html" title="class in com.ibm.dtfj.image">DataUnavailable</a></code> - if a hash code cannot be determined, or if the
 hash code could change between successive snapshots</dd>
<dd><code><a href="../../../../com/ibm/dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></code></dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../com/ibm/dtfj/java/JavaObject.html#getHashcode--"><code>getHashcode()</code></a></dd>
</dl>
</li>
</ul>
<a name="getID--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getID</h4>
<pre><a href="../../../../com/ibm/dtfj/image/ImagePointer.html" title="interface in com.ibm.dtfj.image">ImagePointer</a>&nbsp;getID()</pre>
<div class="block">The ID of an object is a unique address is memory which identifies the object.
 The data at this memory is implementation defined. The object may be 
 non-contiguous. Portions of the object may appear below or above this address.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the runtime-wide unique identifier for the object</dd>
</dl>
</li>
</ul>
<a name="getSections--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSections</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" target="_blank" title="class or interface in java.util">Iterator</a>&nbsp;getSections()</pre>
<div class="block">An object is represented in the Java runtime by one or more regions of memory.
 These include the object's header and the data in the object.

 In certain allocation strategies, an object's header and data may be allocated 
 contiguously. In this case, this method may return an iterator for a single
 section.
 
 In other schemes, the header may be separate from the data or the data may be
 broken up into multiple regions. Additionally, this function does not guarantee
 that the memory used by this object is not also shared by one or more other
 objects.
 
 Callers should not make any assumptions about the contents of the memory.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>a collection of sections that make up this object</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../com/ibm/dtfj/image/ImageSection.html" title="interface in com.ibm.dtfj.image"><code>ImageSection</code></a>, 
<a href="../../../../com/ibm/dtfj/image/CorruptData.html" title="interface in com.ibm.dtfj.image"><code>CorruptData</code></a></dd>
</dl>
</li>
</ul>
<a name="getReferences--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getReferences</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" target="_blank" title="class or interface in java.util">Iterator</a>&nbsp;getReferences()</pre>
<div class="block">Get the set of references from this object.
 <p>
 Corrupt references will be returned as CorruptData objects by the Iterator</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>an iterator of JavaReference and CorruptData objects</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../com/ibm/dtfj/java/JavaReference.html" title="interface in com.ibm.dtfj.java"><code>JavaReference</code></a>, 
<a href="../../../../com/ibm/dtfj/image/CorruptData.html" title="interface in com.ibm.dtfj.image"><code>CorruptData</code></a></dd>
</dl>
</li>
</ul>
<a name="getHeap--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHeap</h4>
<pre><a href="../../../../com/ibm/dtfj/java/JavaHeap.html" title="interface in com.ibm.dtfj.java">JavaHeap</a>&nbsp;getHeap()
          throws <a href="../../../../com/ibm/dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a>,
                 <a href="../../../../com/ibm/dtfj/image/DataUnavailable.html" title="class in com.ibm.dtfj.image">DataUnavailable</a></pre>
<div class="block">Gets the heap where this object is located.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <code>JavaHeap</code> instance representing the heap where this object is stored in memory.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../com/ibm/dtfj/image/CorruptDataException.html" title="class in com.ibm.dtfj.image">CorruptDataException</a></code> - if the heap information for this object is corrupt.</dd>
<dd><code><a href="../../../../com/ibm/dtfj/image/DataUnavailable.html" title="class in com.ibm.dtfj.image">DataUnavailable</a></code> - if the heap information for this object is not available.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../com/ibm/dtfj/java/JavaHeap.html" title="interface in com.ibm.dtfj.java"><code>JavaHeap</code></a></dd>
</dl>
</li>
</ul>
<a name="equals-java.lang.Object-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>equals</h4>
<pre>boolean&nbsp;equals(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" target="_blank" title="class or interface in java.lang">Object</a>&nbsp;obj)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">java.lang.Object</a></code></span></div>
<div class="block">Compares the argument to the receiver, and answers true
 if they represent the <em>same</em> object using a class
 specific comparison. The implementation in Object answers
 true only if the argument is the exact same object as the
 receiver (==).</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" target="_blank" title="class or interface in java.lang">Object</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>obj</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>True if the given object refers to the same Java Object in the image</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang"><code>Object.hashCode()</code></a></dd>
</dl>
</li>
</ul>
<a name="hashCode--">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>hashCode</h4>
<pre>int&nbsp;hashCode()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">java.lang.Object</a></code></span></div>
<div class="block">Answers an integer hash code for the receiver. Any two 
 objects which answer <code>true</code> when passed to 
 <code>.equals</code> must answer the same value for this
 method.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a></code>&nbsp;in class&nbsp;<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" target="_blank" title="class or interface in java.lang">Object</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the receiver's hash.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang"><code>Object.equals(java.lang.Object)</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/JavaObject.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><strong>Diagnostic Tool Framework for Java&trade;</strong></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../com/ibm/dtfj/java/JavaMonitor.html" title="interface in com.ibm.dtfj.java"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../com/ibm/dtfj/java/JavaReference.html" title="interface in com.ibm.dtfj.java"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?com/ibm/dtfj/java/JavaObject.html" target="_top">Frames</a></li>
<li><a href="JavaObject.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><a href="https://www.eclipse.org/openj9/" target="_blank">Eclipse OpenJ9 website.</a><br> To raise a bug report or suggest an improvement create an <a href="https://github.com/eclipse-openj9/openj9/issues" target="_blank">Eclipse OpenJ9 issue.</a><br> Copyright &copy; 2004, 2021, IBM Corp. and others.</small></p>
</body>
</html>
