Java的反射机制
1、Java反射机制的描述
(1)反射机制允许程序在执行期间,借助于Reflection Api取得任何内部类的信息,并能直接操作任意对象的内部属性及方法。
(2)加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整类的结构信息,我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子可以看到类的结构,也就形象的称之为“反射”。
2、通过反射的方式获取类的对象及其内部结构
(1)获取类的非私有结构
以Person类为例获取其内部结构:
(2)获取类的私有结构
(3)如何看待反射和封装两个技术,是否是矛盾的?
通过反射可以调用类的私有结构,这与类的封装看似是矛盾的。其实类封装后,向外提供的方法几乎已经涵盖了私有方法的调用,通过调用公共结构已经可以满足要求,但是如果要强行查看私有结构的情况,那么就可以用反射。
就像使用U盘,有了插口就可以使用,如果想看其内部零部件,也是可以拆看看的。(个人理解)。
3.关于java.lang.Class类的理解
1)类的加载过程:
程序经过javac.exe命令之后,会生成一个或多个字节码文件(.class结尾)。
接着使用java.exe命令对某个字节码文件进行解析运行。相当于将某个字节码文件加载到内存中,此过程称为类的加载。加载到内存中的类,称为运行时类,此运行时类,就作为Class的一个实例。
4.获取Class实例的四种方式

浙公网安备 33010602011771号