获取Class实例的4种方式

1.类名.class
2.对象.getClass()
3.Class.forName(全类名)
4.类加载器

public class Demo {
    
    
    public static void main(String[] args) throws ClassNotFoundException {
    
    
        //1.类名.class
        Class  clazz1 = Demo.class;
        //2.对象.getClass()
        Class  clazz2 = new Demo().getClass();
        //3.Class.forName(全类名)
        Class  clazz3 = Class.forName("equal.Demo");
        //类加载器
        ClassLoader classLoader = Demo.class.getClassLoader();
        Class  clazz4 = classLoader.loadClass("equal.Demo");
    }
}

java.lang.Class
程序经过javac.exe命令之后,会生成一个或多个字节码文件(.class),接着使用java.exe命令对某个字节码文件进行解释运行,相当于将某个字节码文件加载到内存中(类的加载),加载到内存中的类,就称为运行时类,此运行时类,就作为Class的一个实例。

类缓存
标准的JavaSE类加载器可以要求查找类,但一旦某个类被加载到类加载器中,它将维持加载(缓存)一段时间,不过JVM垃圾回收机制可以回收这些Class对象。

Guess you like

Origin blog.csdn.net/a347635191/article/details/97136792