Java类加载器

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

  1. 类装载器的种类:根装载器、扩展类装载器(ExtClassLoader)、系统类装载器(AppClassLoader)。
    1)根装载器:用来装载JRE(Java的运行环境)的核心库类()。根装载器不是ClassLoader 的子类,它使用c+编写,在Java中看不到它。
    2)扩展类装载器(ExtClassLoader):用来装载JRE扩展目录ext中的JAR类包。
    3)系统类装载器(AppClassLoader):用来装载ClassPath路径下的类包。
    三者继承关系:
    系统类装载器(AppClassLoader) ——> 扩展类装载器(ExtClassLoader) ——>根装载器。
  2. 类装载器步骤:装载、链接、初始化
    1)装载:查找和导入Class文件。
    2)链接:校验:检查载入Class文件数据的正确性;
    准备:给类的静态变量分配存储空间;
    解析:将符号引用转成直接引用。
    3)初始化:给类的静态变量进行初始化赋值。
  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(),获取类装载器的父类装载器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值