1. 类加载器与内存的关系
类加载器的字节码放在方法区(元空间)中,同时类加载器加载类后类的信息(成员变量、成员方法及修饰符等)存放在方法区中。类的信息所占内存的回收要同时满足两个条件:类的实例被回收和类加载器被回收。
2. 类加载器的分类
应用类加载器:
加载应用中所有类(包括用户的类和框架类),生命周期和应用相同
系统类加载器:
加载系统级别的类(通常由系统本身管理),生命周期和系统同步
自定义类加载器:
加载自定义模块的类(如反射加载类时的自定义类加载器和插件化时自定义的类加载器)),开发者可以控制其生命周期
3. 类加载器的作用
加载类:从apk文件、dex文件或者文件系统中加载字节码
定义类:将类的架构转化成jvm可以识别的格式
实例化类:使用Class.forName()或者newInstance()等方法实例化类