对Java的反射概念的理解
前言
提示:学习Java的人都要认识到反射的作用和它的强大所在
提示:以下是本篇文章正文内容
一、反射的慨念
就是在程序执行期间借助于反射机制(Reflection)取得程序内部的信息,并直接操作程序。反射是一种镜像操作,和正常操作方式不同,与正常的操作流程相反。
Java的反射机制十分强大,能使我们的操作更加灵活,可以在运行时加入新代码,在编写与执行时,使我们的程序代码能够接入装载到JVM中的类的内部信息,而不是源代码中选定的类协作的代码。
二、反射的优缺点
优点:可以实习动态创建对象和编译,体现出很大的灵活性。
缺点:对性能有影响,会慢于直接执行相同的操作。(但对于现在的设备来说影响不大)
三、获取Class对象的常见几种方式
代码如下(示例):
//方法一
Class c1 = User.class;
//方法二
User u = new User();
Class c2 = u.getClass();
//方法三
Class c3 = Class.forName("com.chen.test.User")
四、基本数据类型获取Class对象
代码如下(示例):
Class c1 = Object.class;//object类
Class c2 = Comparator.class;//接口
Class c3 = String[];//一维数组
Class c4 = String[][];//二维数组
Class c5 = Override.class;//注解
Class c6 = ElementType.class;//枚举
Class c7 = int.class;//基本数据类型
Class c8 = void。class;//void
Class c9 = Class.class;//Class类
总结
一个类被加载到内存中后,就会存在一个Class对象,这个Class对象存放着这个类的信息。通过反射机制可以获取该类的任何类的内部信息,并能操作任意对象的内部属性及方法。