浅谈java中的反射

以下是从别人文章上copy过来的,个人觉得容易理解

什么是反射(Reflection )?
主要是指程序可以访问、检测和修改它本身状态或行为的一种能力
如何理解呢“
通常编写一个类,想要访问此类时必须new一个对象,然后使用对象.方法名来访问
而反射无需new一个对象,直接采用java反射技术,访问类中的方法,属性并可以进行修改”
.java文件加载过程
在这里插入图片描述
在这里插入图片描述

JAVA机制反射是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
反射就是把java类中的各种成分映射成一个个的Java对象
例如:一个类有:成员变量、方法、构造方法、包等等信息,利用反射技术可以对一个类进行解剖,把个个组成部分映射成一个个对象。(其实:一个类中这些成员方法、构造方法、在加入类中都有一个类来描述)

类加载器会给每个java文件都创建一个Class对象,用来描述类,画个图:

在这里插入图片描述

反射是java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检查并且对内部的成员进行操作。例如它允许一个java的类获取他所有的成员变量和方法并且显示出来。

由此图可以看出,类在加载后,同时形成此类的一个Class对象(是此类的快照),通过获取到Class对象,可以获取到此类的所有方法和属性,并将获取到的方法和属性映射成各个独立的对象
将获取到的Class对象映射到程序中一个新的类,这个过程就称为反射
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值