论 反射机制 (一)

   我们在开发过程中会经常遇见反射机制,今天我就来说说反射机制。

   Java的反射机制是Java特性之一。反射机制是构建框架技术的基础所在,我们在构建框架的时候一定会用到反射机制。灵活的掌握java的反射机制。对与我们的开发将有很大的帮助。

    java反射是指在运行状态中,动态获取信息以及动态调用对象方法的功能。

    java反射3个动态性质:

         运行时生成对象实例

          运行期间调用方法

         运行时更改属性

如何理解java反射的原理呢? 首先我们要知道java程序的执行过程。

        要想java程序能够运行,java类必须被java虚拟机加载。运行的过程都是在编译时就已经加载了所需要的类。

                      HelloWorld.java--->编译器-------->HelloWorld.claaa----->java虚拟机------->运行程序

       java反射机制在编译是并不确定是哪个类加载了,而是在程序运行的时候才加载、探知、使用。这样的特点就是反射。这类似于光学中的反射概念。所以把java的这种机制成为反射机制。   在计算机科学领域,反射是指一类应用,他们能够自描述和自控制。

    java反射机制能够知道类的基本结构,这种对java类结构探知的能力,称为java类的“自审”。我们使用Eclipse时,java代码的自动提示功能就是利用了java反射的原理,是对所创建对象的探知和自审。 

  通过java反射,可以实现以下功能:

    运行时判断任意一个对象所属的类

   在运行是构造任意一个类的对象

    在运行是判断任意一个类锁具有的方法和属性

   在运行时调用任意一个对象的方法。


java反射常用的类:

  Class类:反射的核心类,反射所有的操作都是围绕该类来生成。通过Class类,可以获取类的属性,方法类内容信息。

  Filed类:表示类的属性,可以获取和设置类中的属性的值。

  Mothod类:表示类的方法,它可以用来获取类中方法的信息,或者执行方法

  Constructor类:表示累的构造方法。

在java程序中使用反射的基本步骤如下:

   1、导入java.lang.reflect.*;

    2、获取需要操作的累的java.lang.Class对象

    3、调用Class的方法获取Filed,Method等对象

   4、使用反射API进行操作


明天将继续说java中的反射,并且结合代码来分析反射机制。

   注意:使用反射虽然会很大程度上提高代码的灵活性,但是不能滥用反射,因为通过反射创建对线时性能要稍微低一些,实际上,只有当程序需要动态创建某个类的对象时才会考虑用到反射,通常在开发通用性比较广的框架,基础平台时可能会大量使用反射,因为在很多java平台框架中都需要根据配置文件信息来创建java对象。从配置文件读取的只是某个类的字符串类名,程序需要根据字符串来创建对象的实例,就必须使用反射。

  

     

     

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值