Java 语言的反射机制

在运行时判断任意一个对象所属的类。

在运行时构造任意一个类的对象。

在运行时判断任意一个类所具有的成员变量和方法。

在运行时调用任意一个对象的方法

Reflection(API)

在JDK中,主要由以下类来实现Java反射机制,这些类都位于java.lang.reflect包中: Class类:代表一个类。 Field 类:代表类的成员变量(成员变量也称为类的属性)。 Method类:代表类的方法。 Modifier类:代表修饰符。 Constructor 类:代表类的构造方法。 Array类:提供了动态创建数组,以及访问数组的元素的静态方法。

Class中的常用方法(获得类的构造方法)

getConstructors():获得类的所有的public类型的构造方法。

getDeclaredConstructors():获得类所有的构造方

getConstructor(Class[] parameterTypes):获得类的特定public的构造方法

parameterTypes 参数指定构造方法的参数类型。

getDeclaredConstructor(Class[] parameterTypes):获得类指定的所有的构造方法

## 软件包 java.lang.reflect 的描述 
提供类和接口,以获得关于类和对象的反射信息。
在安全限制内,反射允许编程访问关于加载类的字段、方法和构造方法的信息,
并允许使用反射字段、方法和构造方法对其底层对等项进行操作。

 Java的反射机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,
可以调用任意一个对象的属性和方法
jdbc(数据库连接技术)在加载驱动时运用到了反射技术

然后我们了解一下java程序运行过程和使用反射后java程序的运行过程:

java程序运行过程:Student.java==>编译==>Student.class==>java虚拟机==>运行程序

java放射: ?==>编译器==>运行程序==>编译器

反射机制和java.lang.Class<T>这个类息息相关,
因为z整个反射机制j就是基于对Class对象的操作,了解反射之前,我们需要先了解这个类.

Class这个类很特殊的一个名字对吧,那么它的意义肯定也非同一般。一句话,Class这个类就代表z正在运行的java应用程序的类和接口。
如果把一个类比作成一个人,那么Class对象就相等于这个人的资料卡片,关于这个人的一起都在这个小小的资料卡片中存储着。


下面是代码:

package reflect;

import pojo.student;
public class demo1 {
public static void main(String[] args) {
student stu=new student();
Class cla=stu.getClass();
Class cla2=student.class;
Class cla3=null;
try {
Class.forName("pojo.student");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
System.out.println(cla==cla2);
System.out.println(cla2==cla3);
System.out.println(cla==cla3);
}
}

 

心得总结:少说话多做事,常常学习少生气。别怨言,别乱管事,分内分外分清楚。
 
 
 
Posted on 2020-08-23 15:26  脸红嘛宝贝  阅读(88)  评论(0编辑  收藏  举报