In the previous two chapters, we came to know Java objects and their
interrelationships. We will now climb the scaffolding of the Java class hierarchy to the
very top and finish our study of the core language at the summit. In this chapter, we’ll
talk about the
itself, which is the “grandmother” of all classes in Java. We’ll also describe the even
Class class (the class named
“Class”) that represents Java classes in the Java virtual machine. We’ll discuss what
you can do with these components in their own right. This will lead us to a more general
topic: the Java Reflection API, which lets a Java program inspect and interact with
(possibly unknown) objects dynamically, at runtime. Finally, we’ll also talk about the
Java Annotations API, new in Java 5.0, which allows developers to add metadata to their
source code, for use by the compiler and runtime systems that look for it.
java.lang.Object is the ancestor of all objects;
it’s the primordial class from which all other classes are ultimately derived.
Methods defined in
Object are, therefore, very
important because they appear in every instance of every class, throughout all of
Java. At last count, there were nine public methods and two protected methods in
Object. Five of these are versions of
notify() that are used to synchronize threads on object instances, as
we’ll discuss in Chapter 9. The remaining four methods are used ...