1.Class对象的创建是由jvm完成的,一个类被加载后会自动的生成这个类的Class对象;

2.获取类对象的方法

  • 使用类方式获取

  • 使用全限定名称

  • 使用对象获取对象

简单的使用:

package com.ydlclass.reflect;

public class TestClass {
    public static void main(String[] args) throws ClassNotFoundException {
        //使用类的名称获取Class对象,比如之前多线程使用synchronized关键字的方式
        Class<Dog> dogClass = Dog.cla***全限定名称的方式
        Class<?> aClass1 = Class.forName("com.ydlclass.reflect.Dog");//抛出一个检查性的异常,有可能找不到这个类

        //使用对象获取Class对象
        Dog dog = new Dog();
        Class<? extends Dog> aClass = dog.getClass();

        System.out.println(dogClass == aClass);
        System.out.println(dogClass == aClass1);//结果说明了,不管是使用者三种方式的哪一种获取Class对象,都是相同的
        

    }
}