一、基本概念
1.Java语言允许通过程序化的方式间接对Class进行操作,Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数、属性和方法等
2.Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能,这就为使用程序化方式操作Class对象开辟了途径
3.反射、映像、倒影,用在Java身上指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes
4.Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起其methods
5.要想使用反射,首先需要获得待操作的类所对应的Class对象,Java中,无论生成某个类的多少个对象,这些对象都会对应于同一个Class对象,这个Class对象是由JVM生成的,通过它能够获悉整个类的结构
6.反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制
7.反射对象是直到程序运行期间才知道类的名字的实例,这时才获取对象的成员,并设置属性。
此时要用到类的全路径 ,用类的全路径来加载类,并返回该类的对象。以后就可以遍历类中的各个方法搜索,各个属性.new是给类直接在内存中创建一个实例,并且可以直接初始化等。不需要类的全路径
二、特点及常用方法
参考网址
1.深入解析Java反射(1) - 基础
2.JAVA中的反射机制
3.Java反射机制详解
4.Java反射机制及IoC原理
注:文章是经过参考其他的文章然后自己整理出来的,有可能是小部分参考,也有可能是大部分参考,但绝对不是直接转载,觉得侵权了我会删,我只是把这个用于自己的笔记,顺便整理下知识的同时,能帮到一部分人。
ps : 有错误的还望各位大佬指正,小弟不胜感激