1.8_2 意外之处
Java 的反射 API 中有一些很特别的地方,刚接触时不好理解。
// true
Class.class.isInstance(Class.class);
回忆 Class literal 语法,将 Class 视为对象,则其 Class 对象为 Class.class,上面代码表明,Class 对象是 Class 类的实例,这形成一个循环,如图 1.5 所示:

元类(metaclass),是特殊的类,元类的 实例 也是类,Class 是 Java 中 唯一 的元类。
在 Java 中,所有对象都有自己的类,所有的类又都是对象。Class 是特殊的类:
- 作为 元类,它的 实例对象 是 普通类。
- 作为 对象,它拥有自己的类型,Java 规定,其类型也是
Class类。
如果没有上面的循环依赖,Java 的依赖树将 无限生长。