JAVA反射

ClassLoader:类装载器
        类装载器就是寻找类的字节码文件并构造出类在JVM内部表示的对象组件。在Java中,类装载器把一个类装入JVM中,要经过一下步骤:
               1、装载:查找和导入Class文件
               2、链接:执行校验、准备和解析步骤,其中解析步骤是可以选择的:
                   a) 校验:检查载入Class文件数据的正确性
                   b) 准备:给类的静态变量分配存储空间
                   c) 解析:将符号引用转成直接引用
               3、初始化:对类的静态变量、静态代码块执行初始化工作。
       JVM运行时会产生三个ClassLoader:根装载器、ExtClassLoader(扩展类装载器)和AppClassLoader(系统类装载器)
              根装载器不是ClassLoader的子类,它使用C++编写, ExtClassLoader和 AppClassLoader都是ClassLoader的子类。
              根装载器是ExtClassLoader的父装载器,ExtClassLoader是AppClassLoader的父装载器。
      三  委托机制
              是指先委托父装载器寻找目标类,只有在找不到的情况下才从自己的类路径中查找并装载目标类。--------java.lang.NoSuchMethodError

Java反射机制
     一 三个反射类
              Constructor类的构造函数反射类
                        getConstructor()方法可以获得类的所有构造函数反射对象数组。
                        newInstance(Object...initargs)创建一个对象类的实例
              Method类方法的反射类
                        getDeclaredMethods()获取类的所有方法反射类对象数组Method[]
                        getDeclaredMethod(String name,Class...parameterTypes)获取特定签名的方法----------name为方法名,Class...为方法入参类型列表
                        invoke(Object obj,Object...args)------obj为操作的目标对象,args为方法入参
                   Method还有很多用于获取类方法更多信息的方法
                        1) Class  getReturnType():获取方法的返回值类型
                        2) Class[]  getParameterTypes[]:获取方法的入参类型数组
                        3) Class[]  getExceptionTypes[]:获取方法的异常类型数组
                        4) Annotation[][]  getParameterAnnotations():获取方法的注解信息
              Field类的成员变量的反射类
                        getDeclaredFields()获取类的成员变零反射对象数组
                        getDeclaredField(String name)  获取某个特定名称的成员变量反射对象
                        set(Object obj,Object value)-------obj标识操作的目标对象,value为目标对象的成员变量设置值
                        
              通过反射访问类中的privateprotected方法时,必须调用Method中的setAccessible(boolean access)方法取消Java语言检查,否则抛出异常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值