2020-11-16

 

类的加载

当我们的程序在运行时,第一次使用某个类的时候,会将此类的class文件读取到内存,并将此类的所有信息存储到一个Class对象中 ;

一、类的加载时机主要有以下6个:

1.创建类的实例。2020-11-16

2.类的静态变量,或者为静态变量赋值。2020-11-16

3.类的静态方法。2020-11-16

4.使用反射方式来强制创建某个类或接口对应的java.lang.Class对象。2020-11-16

5.初始化某个类的子类。2020-11-16

6.直接使用java.exe命令来运行某个主类。通过cmd窗口编译我们的程序

二、获取加载器

1.如何获取类加载器: 使用类的class对象调用getClassLoader()方法

2020-11-16

 

 

反射的概念:

1.简言之就是通过字节码文件对象(java的灵魂:世间万物皆对象,字节码文件对象其实就是Class类的对象),去使用该文件中的成员变量、构造方法、成员方法。

一、获取Class对象(字节码文件对象)

有以下三种方法:

1.通过类名.class获得

2020-11-16

2.通过对象名.getClass()方法获得

2020-11-16

3.通过Class类的静态方法获得: static Class forName("类全名")

2020-11-16

二、Class类常用方法

1.获得类名字符串 String getsimpleName();

2020-11-16

2.获得类全名:包名+类名

2020-11-16

3.创建Class对象关联类的对象

2020-11-16

三、反射操作成员(构造方法、成员方法、成员变量)

开始的时候我们就说过创建了字节码文件对象(即Class类对象)就可以操作文件里面的成员(构造方法、成员方法、成员变量)

首先创建一个Person类,定义构造方法,成员方法,成员变量

2020-11-16

1.反射操作构造方法

2020-11-16

2.反射操作成员方法

2020-11-16

3.反射操作成员变量

2020-11-16