千锋教育Java入门全套视频教程(java核心技术,适合java零基础,Java

反射是指在运⾏状态中,对于任意⼀个类都能够知道这个类所有的属性和⽅法;并且对于任意⼀个对
象,都能够调⽤它的任意⼀个⽅法;这种动态获取信息以及动态调⽤对象⽅法的功能称为反射机制。
反射涉及到四个核⼼类:
• java.lang.Class.java:类对象;
• java.lang.reflect.Constructor.java:类的构造器对象;
• java.lang.reflect.Method.java:类的⽅法对象;
• java.lang.reflect.Field.java:类的属性对象;
反射有什么⽤?
• 操作因访问权限限制的属性和⽅法;
• 实现⾃定义注解;
• 动态加载第三⽅jar包;
• 按需加载类,节省编译和初始化APK的时间;
反射⼯作原理
当我们编写完⼀个Java项⽬之后,每个java⽂件都会被编译成⼀个.class⽂件,这些Class对象承载了
这个类的所有信息,包括⽗类、接⼝、构造函数、⽅法、属性等,这些class⽂件在程序运⾏时会被
ClassLoader加载到虚拟机中。当⼀个类被加载以后,Java虚拟机就会在内存中⾃动产⽣⼀个Class对
象。我们通过new的形式创建对象实际上就是通过这些Class来创建,只是这个过程对于我们是不透
明的⽽已。
反射的⼯作原理就是借助Class.java、Constructor.java、Method.java、Field.java这四个类在程序
运⾏时动态访问和修改任何类的⾏为及状态。