关于java.lang.Class类的理解
1.类的加载过程
程序经过Javac.exe命令以后,会生成一个或多个字节码文件(.class结尾)
接着使用java.exe命令对字节码文件进行解释运行。相当于将某个字节码我呢见加载到内存中去,此过程称为类的加载
加载到内存中的类,成为运行时类,此运行时类就作为Class的一个实例
2.Class的实例就对应着一个运行时类
3.加载到内存中的运行时类,会缓存一定的时间,期间可以通过不同的方式来获取此运行时类。
获取Class实例的方式
//方式一:调用运行时类的属性:getClass
Class clazz1 = Person.class;
System.out.println(clazz1);
//方式二:通过运行时类的对象,调用getClass()
Person person = new Person();
Class clazz2 = person.getClass();
System.out.println(clazz2);
//方式三:调用Class的静态方法:forName(String classpath);
Class clazz3 = Class.forName("com.qjx.java.Person");
System.out.println(clazz3);
//方式四:使用类的加载器:ClassLoader
ClassLoader classLoader = ReflectionTest.class.getClassLoader();
Class clazz4 = classLoader.loadClass("com.qjx.java.Person");
System.out.println(clazz4);