Java类加载器

    xiaoxiao2025-07-27  14

    java.lang.ClassLoader :就是找到类的字节码文件并构造出类在JVM内部表示的对象组件。

    类装载器的种类:根装载器、扩展类装载器(ExtClassLoader)、系统类装载器(AppClassLoader)。 1)根装载器:用来装载JRE(Java的运行环境)的核心库类()。根装载器不是ClassLoader 的子类,它使用c+编写,在Java中看不到它。 2)扩展类装载器(ExtClassLoader):用来装载JRE扩展目录ext中的JAR类包。 3)系统类装载器(AppClassLoader):用来装载ClassPath路径下的类包。 三者继承关系: 系统类装载器(AppClassLoader) ——> 扩展类装载器(ExtClassLoader) ——>根装载器。类装载器步骤:装载、链接、初始化。 1)装载:查找和导入Class文件。 2)链接:校验:检查载入Class文件数据的正确性; 准备:给类的静态变量分配存储空间; 解析:将符号引用转成直接引用。 3)初始化:给类的静态变量进行初始化赋值。类装载器的常用方法。 Class loadClass(String name).name是装载的类名,必须使用权限定类名。 Class defineClass(String name,byte[] b,int off,int len). 将类文件的字节数转化为Java对象。 Class findLoadedClass(String name).查看ClassLoader是否装载了某个类,装载了返回Java.lang.Class对象。否则返回null。 ClassLoader getParent(),获取类装载器的父类装载器。
    最新回复(0)