java反射机制详解
java反射机制是在运行状态下,对任意一个类可以获取该类的属性和方法,对任意一个对象可以调用其属性和方法。这种动态的获取信息和调用对象的方法的功能称为java的反射机制
- class<?>类,在java.lang包下面,class类的实例表示正在运行的java应用程序中的类和接口 ?、class是一个类,一个描述类的类(也就是描述类的本身),封装了描述字段的Field、方法Method和构造器的Constructor等属性 ?、对象照镜子后可以得到的信息(某个类的数据成员、方法和构造器、某个类到底实现了那些方法) ?、对于每个类而言,JRE都为其保留一个不变的Class类型的对象 ?、Class对象只能有系统创建对象 ?、一个类在jvm中只会有一个实例 注意:class没有公共构造方法,class是在加载类时由java虚拟机已经调用类的加载器中的defineClass方法自动加载的、
- 、继承了java.lang.Object实现了Serializable、AnnotatedElement、GenericDeclaration、Type、
- 、涉及的相关方法
- 、反射的好处 :大大增强了程序的可扩展性
- 、反射的基本步骤 1、获取Class对象 2、实例化对象 3、访问对象的属性、方法等。。
- 、获取此Class对象有三种方式 Class.forName(classname) 用于做类加载 2、obj.getClass()用于获得对象的类型 3、类名.class
- 、创建对象的两种方式 1、调用空参数的构造函数 2、调用带参数的构造函数
- 、利用newInstance() 创建对象 ,调用的对象必须有无参的构造器
- 、ClassCloader类加载器 类加载器是用来把类装载到jvm中,jvm规范中定义了两种类加载器,启动类加载器和用户自定义类加载器。jvm在运行时会产生三个类加载器组成的 初始化加载器层次结构 引导类加载器、扩展类加载器和 系统类加载器