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
Object class itself, which is the “grandmother” of
all classes in Java. We’ll also describe the even more fundamental
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, which allows
developers to add metadata to their source code for use by the compiler and
runtime systems that look for it.