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.