Java反射相关

一、反射是什么

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所先要获取到每一个字节码文件对应的Class类型的对象。反射就是把java类中的各种成分映射成一个个的Java对象。
 

二、反射获取Class的三方式

Class.forName(“完整类名带包名”)
对象.getClass()
任何类型.class

三、通过反射实例化对象

对象.newInstance()

:newInstance()方法内部实际上调用了无参数构造方法,必须保证无参构造存在才可以。
否则会抛出java.lang.InstantiationException异常。

 四、反射机制的优缺点?

优点:可以动态执行,在运行期间根据业务功能动态执行方法、访问属性,最大限度发挥了java的灵活性。
缺点:对性能有影响,这类操作总是慢于直接执行java代码。 

五、 反射机制相关的重要的类

java.lang.Class    代表整个字节码。代表一个类型,代表整个类。
java.lang.reflect.Method    代表字节码中的方法字节码。代表类中的方法。
java.lang.reflect.Constructor    代表字节码中的构造方法字节码。代表类中的构造方法。
java.lang.reflect.Field    代表字节码中的属性字节码。代表类中的成员变量(静态变量+实例变量)。
必须先获得Class才能获取Method、Constructor、Field

六、Spring框架哪些地方用到反射

1.我们在使用JDBC连接数据库时使用class.forName()通过反射加载数据库的驱动程序
2.Spring框架的IOC(动态加载管理Bean)创建对象以及AOP功能都和反射有联系
3.动态配置实例的属性 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值