jdk源码阅读之Class类(1)

Class类的注释及其解释

Class类的注释以及特点说明

  1. 类{@code Class}的实例表示正在运行的Java应用程序中的类和接口。枚举是一种类,注释是一种接口
  2. 每个数组也属于一个反映为{@code Class}对象的类,它由具有相同元素类型和维数的所有数组共享
  3. 原始Java类型({@code boolean},{@code byte},{@ code char},{@ code short} {@code int},{@ code long},{@ code float},以及 {@code double}),关键字{@code void}也表示为{@code Class}对象。
  4. {@code Class}没有公共构造函数。相反,{@code Class} 对象由Java虚拟机自动构造,因为类被加载,并且通过调用类* loader中的{@code defineClass}方法。
  • 以下示例使用{@code Class}对象来打印对象的类名称:void printClassName(Object obj) {以下示例使用{@code Class}对象来打印对象的类名称:void printClassName(Object obj) {
    System.out.println( System.out.println("The class of " + obj + " is " + obj.getClass().getName());
    }
  • 也可以使用类文字获取命名类型(或void)的{@code Class}对象***。参见Java&trade的第15.8.2节;语言规范{@code System.out.println("The name of class Foo is: "+Foo.class.getName());}*
  1. @param 由此{@code Class} 对象建模的类的类型。例如,{@code String.class}的类型是{@code Class }。如果正在建模的类是 unknown,请使用{@code Class <?>}。

Class类的关系图

Class类的关系图中就可以看出。Class继承Serializable类,GenericDeclaration类以及Type类。还有Class类继承祖父类AnnotatedElement
jdk源码阅读之Class类(1)

Class类的内部结构

jdk源码阅读之Class类(1)
jdk源码阅读之Class类(1)
jdk源码阅读之Class类(1)
jdk源码阅读之Class类(1)

通过Class类的注释几点总结

  1. java中总共有8种基本数据类型如下
    . boolean 只有两个值 truefalse
    . byte 字节数据类型
    . char 字符数据类型
    . short 短整型数据类型
    . int 整型数据类型
    . long 长类型
    . float 浮点数数据类型
    . double 双精度数据类型
  2. 几种常见的java对象
    . enum 是一个类
    . annotation 是一个接口
    . array 数组也是一个类
    . void 是一个类的对象
  3. Class没有公共构造方法,它的构造方法是通过虚拟机作为类加载,并通过调用类 loader中的{@code defineClass}方法