决定从现在开始养成写博客记录学习过程的习惯,所以把最近学的反射相关知识整理一下。
首先,什么是反射?
从概念上说,反射主要是指程序可以访问、检测和修改它自身状态或行为的一种能力。
而我的理解是:常规操作一个类需要实例化它的对象,然后操作它的数据成员或成员函数,在逻辑是是由上而下的;
而反射不同,它是反过来获取类的类类型(Class Type),而后再进行操作,有一种由下而上的感觉。
区别在哪里呢?
打个比方,大多数包装好的类他们的对象都是一个宝库,但我们往往只会用到其中的一部分,由多变少;
而反射则是通过仅仅一个对象获取到整个类的全部信息,由少变多。
换个说法:对象照了下镜子,反射 出了它作为一个类的全貌。
同时,反射机制在java中是动态的,你完全可以写一个可能根本不存在的class交给编译器处理,而且能够通过编译。
即:程序运行时,允许改变程序结构或变量类型
java虽然一般归类为静态语言,但是它有反射这样一个动态的机制。
其次,反射具体是什么?
java里万事万物皆对象ÿ