类的加载过程
程序在经过javac.exe命令后会生成一个或多个字节码文件(.class结尾的文件),接着使用java.exe命令对字节码文件进行解释运行,这时候就把字节码文件加载到内存中。加载到内存中的类成为运行时类,运行时类是Class的实例。
@Test
public void test() throws ClassNotFoundException {
//方式1:调用运行时类的属性 .class
Class cla1 = person.class;
System.out.println(cla1);
//方式二:通过运行时类的对象,调用getClass()方法
person p = new person();
Class cla2 = p.getClass();
System.out.println(cla2);
//方式三:调用Class的静态方法 forName(String classPath)
Class cla3 = Class.forName("com.reflection.person");
System.out.println(cla3);
//方式四:通过类的加载器
ClassLoader classLoader = reflectionTest.class.getClassLoader();
Class cla4 = classLoader.loadClass("com.reflection.person");
System.out.println(cla4);
System.out.println(cla1 == cla2);
System.out.println(cla1 == cla3);
System.out.println(cla1 == cla4);
//运行结果
//true
//true
//true
//说明是同一个运行时类
}