The Object class provides the root class for this library. Memory space for Object data, such as the hashcode and reference count, is allocated when the Object is created at runtime. Additional references to this particular object all act as handles to the same data structure, and a reference count is kept. As a reference goes out of scope, the reference count is decremented. When it reaches 0, the allocated memory is deleted from the system.
The String class extends Object, and is one of the most powerful and versatile classes. It follows the Java convention of being composed os 16-bit characters, instead of the common C/C++ 8-bit strings. Functionality matches Java as much as possible.