All classes extend the Object class, either directly or indirectly. A class declaration, without the extends clause, implicitly extends the Object class (see Section 6.1, p. 226). Thus, the Object class is always at the top of any inheritance hierarchy. The Object class defines the basic functionality that all objects exhibit and that all classes inherit. Note that this also applies for arrays, since these are genuine objects in Java.
The Object class provides the following general utility methods (see Example 10.1 for usage of some of these methods):
When storing objects in hash tables, this method can be used to get a hash value for an object. This value is guaranteed to be consistent during the execution ...