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对象。