> This is a pet hate of mine: the JVM /does/ "know the concept of a> pointer". You can hardly move in the JVM without using pointers, since> they're the only way of handling arrays or instances of class types.>> What the JVM lacks is a notion of /pointer arithmetic/.

A reference to an object is considered to have
Java virtual machine type reference. Values of
type reference can be thought of as pointers to
objects. More than one reference to an object
may exist. Objects are always operated on, passed,
and tested via values of type reference.

> [It's handy to use `reference` to mean `pointer without arithmetic> opportunities`, but then C++ uses it for something else, not> unrelated, again ...]

The Java type "reference" misses not only pointer arithmetic but also
type casting (of pointers) and the address operator (&). You may of
course argue that such features are not desirable. The absence of
such feature makes it much harder to write compilers for a translation
from ISO C to JVM. The CLR environment of .NET is different in this
respect. And most other virtual machines treat the concept of a
pointer as a natural ingredient of a virtual machine.