反射就是java自我管理(类,对象)的机制
反射的作用:
可以通过对象发现其所属的类型,以及该类型具有的属性,方法
构造器
可以创建对象,并访问其属性和方法.使用反射创建对象我们不
使用new关键字!
反射机制中的一个重要的类Class
Class的一个实例描述java中的一个类
Class就好象是java中类的简历
而Class的每一个实例就是java中某一个具体类的简历
所以,通过通过一个Class的实例,我们就可以得知它所描述的
类有哪些属性,方法和构造器
既然Class的实例是用于描述其他Java中的类的,那么Class的
实例是谁创建的?
Class的加载
类加载到内存:
每当我们需要使用java中的某个类时(这个类可以是api提供,
也可以是我们自己定义的),JVM会查看当前类是否已经加载到
内存,若没有,那么就会去类路径下寻找该类的.class文件,并
创建一个Class实例去描述该文件中定义的类.并将该Class的
实例载入内存.这样当下次再使用该类时,就无需再做此操作了.
用于描述类的Class实例在内存中都是唯一的.
如何获取描述具体类的Class实例
获取描述基本类型的Class的实例
int: Class cls = int.class;
long: Class cls = long.class;
获取描述引用类型的Class的实例
String:
1:Class cls = String.class;
2:Class cls = Class.forName("java.lang.String");
3:Class cls = "abc".getClass(); 对象.getClass();
反射中的Field类
Field的实例用于描述类中的一个属性
访问控制符 类型 属性名 属性值
private int age = 1;
通过这个实例,可以得知它所描述的类的某一个属性是什么
类型的,属性名是什么,访问控制符是什么等
反射中的Method类
Method的实例用于描述类中的一个方法
反射中的Constructor类
Constructor的是实例用于描述类中的一个构造方法
java提供了一个叫所javascript的引擎,支持使用js脚本调用或书写
java程序.这个多用于游戏中的脚本.