JAVA反射机制

一、什么是JAVA反射机制
(1)JAVA反射机制是在运行状态中,对于任意一个类,都能够获取这个类的所有属性(属性的权限修饰符,数据类型,变量名等)和方法(方法名,返回值,参数等),构造器,运行时类实现的接口,所在的包,注解等,对于任意一个对象,都能够调用它的任意一个方法和属性,这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息。
功能:
即:在运行时可以:
知道这个类有哪些属性和方法;
构造任意一个类的对象;
调用任意一个对象的方法和属性。

(2)要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象。简单来说,反射就是把java类中的各种成分映射成一个个的Java对象
例如:一个类有:成员变量、方法、构造方法、包等等信息,利用反射技术可以对一个类进行解剖,把个个组成部分映射成一个个对象。(其实:一个类中这些成员方法、构造方法、在加入类中都有一个类来描述)
如图是类的正常加载过程:反射的原理在与class对象。熟悉一下加载的时候:Class对象的由来是将class文件读入内存,并为之创建一个Class对象。

二、反射的用途

(1)通过反射机制访问java对象的属性,方法,构造方法等

(2)当我们在使用IDE,比如Ecplise时,当我们输入一个对象或者类,并想调用他的属性和方法       是,一按点号,编译器就会自动列出他的属性或者方法,这里就是用到反射。

(3)反射最重要的用途就是开发各种通用框架。JDBC利用反射将数据库的表字段映射到java对象的getter/setter方法。Jackson, GSON, Boon等类库也是利用反射将JSON文件的属性映射到java对的象getter/setter方法。可见,只要使用java,反射就无处不在。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值