简单理解--java反射(面试必备)

一、什么是反射?

一般Java对象的类型在编译器就已经确定下来了在运行的时候可能会动态加载一些类,但是这些类在之前并没有用到,所以他没有加载到Java虚拟机里面,这个时候就可以使用反射机制进行加载

反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象, 都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。


二、反射的优缺点?

优点:  通过配置文件设定要反射的类,即可自动完成对象的实例化,然后进行相应操作,完全不需要更改java源代码,提高了程序的灵活性和拓展性。


缺点: 打破封装、私有属性会被访问;反射机制是动态解析的,JVM无法进行代码优化。


三、反射机制的主要应用场景

  1. 用于反编译将.Class 文件转换成.Java 文件
  2. Spring框架的配置使用的就是反射来动态加载对象:

          我们在使用JDBC连接数据库时使用Class.forName()通过反射加载数据库的驱动程序;

          Spring框架的IOC (动态加载管理Bean) 创建对象以及AOP (动态代理)功能都和反射有联系;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

错把路灯看作月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值