2020-11-16
类的加载
当我们的程序在运行时,第一次使用某个类的时候,会将此类的class文件读取到内存,并将此类的所有信息存储到一个Class对象中 ;
一、类的加载时机主要有以下6个:
1.创建类的实例。
2.类的静态变量,或者为静态变量赋值。
3.类的静态方法。
4.使用反射方式来强制创建某个类或接口对应的java.lang.Class对象。
5.初始化某个类的子类。
6.直接使用java.exe命令来运行某个主类。通过cmd窗口编译我们的程序
二、获取加载器
1.如何获取类加载器: 使用类的class对象调用getClassLoader()方法
反射的概念:
1.简言之就是通过字节码文件对象(java的灵魂:世间万物皆对象,字节码文件对象其实就是Class类的对象),去使用该文件中的成员变量、构造方法、成员方法。
一、获取Class对象(字节码文件对象)
有以下三种方法:
1.通过类名.class获得
2.通过对象名.getClass()方法获得
3.通过Class类的静态方法获得: static Class forName("类全名")
二、Class类常用方法
1.获得类名字符串 String getsimpleName();
2.获得类全名:包名+类名
3.创建Class对象关联类的对象
三、反射操作成员(构造方法、成员方法、成员变量)
开始的时候我们就说过创建了字节码文件对象(即Class类对象)就可以操作文件里面的成员(构造方法、成员方法、成员变量)
首先创建一个Person类,定义构造方法,成员方法,成员变量
1.反射操作构造方法
2.反射操作成员方法
3.反射操作成员变量