反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的功能称为Java语言的反射机制。
获取Class对象方法:Class.getClass(),Class.forName,ClassLoader.loadClass。
Class.forName和ClassLoader.loadClass的区别
初始化不同:
1.Class.forName()会对类初始化,而loadClass()只会装载或链接。
2.Class.forName()在类加载的时候会执行静态代码块(初始化了),loadClass只有在调用newIntance方法的时候才会执行静态代码块。
类加载器不同:
1.Class.forName(String)方法(只有一个参数),使用调用者的类加载器来加载,也就是用加载了forName方法的代码的那个类加载器。
2.ClassLoader.loadClass()方法是一个实例方法(非静态方法),调用时需要自己指定类加载器。
标签:反射,forName,Java,loadClass,ClassLoader,方法,Class,加载 From: https://blog.51cto.com/u_11315052/5855039