title: What is a native pointer and returnAddress?
body: <p>I was reading the internals of JVM from <a href="http://www.artima.com/insidejvm/ed2/jvm7.html" rel="nofollow">here</a>
  and came across the term "native pointer", what does it mean, does it has something to do with JNI?</p>
  
  <p>In the text above it talks about Program Counters and says:</p>
  
  <blockquote>
    <p>Each thread of a running program has its own pc register, or program counter, which is created when the thread is started. The pc register is one word in size, so it can hold both a native pointer and a returnAddress. As a thread executes a Java method, the pc register contains the address of the current instruction being executed by the thread. An "address" can be a native pointer or an offset from the beginning of a method's bytecodes. If a thread is executing a native method, the value of the pc register is undefined.</p>
  </blockquote>
  
  <p>From what I understand returnAddress would be any reference address. Like:
  <code>Object o = new Object();</code> here <code>o</code> would return the address of the Object created in the heap. Is my understanding correct?</p>
  
  <p>Any example explaining both would be great.</p>