1:类加载器
类加载过程
当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载、连接、初始化三步骤来实现对这个类进行初始化。
加载:就是指将class文件读入内存,并为之创建一个Class对象。任何类使用时系统都会建立一个Class对象
连接:验证,是否有正确的内部结构,并和其他类协调一致。
准备,负责为类的静态成员分配内存,并设置默认初始化值
解析,将类的二进制数据中的符号引用替换为直接引用
初始化:开辟栈、堆内存空间,创建对象、默认初始化、显示初始化、构造初始化
类加载时机和主要作用
1)创建类的实例
2)访问类的静态变量、或者为类的静态变量赋值
3)调用类的静态方法
4)使用反射方法来强制创建某个类或者接口对象的java.lang.Class对象
5)初始化某个类的子类:初始化子类时,首先加载其父类
6)直接使用java.exe命令来运行某个主类
类加载器的主要作用:
负责把.class文件加载到内存中,并为之生成对应的Class对象
反射概述
Java反射机制是在运行状态中
对于任意一个类,都能够知道这个类的所有属性和方法。
对于任意一个对象,都能够调用它的任意一个方法和属性。
这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
即:通过class文件对象,去使用该文件中的成员变量、构造方法、成员方法