java类的动态载入模型(二)

JVM在运行时身成三个classloader:Bootstrap ClassLoader、Extension ClassLoader和AppClassLoader。这些classloader是用来载入本地已知的类库。

Bootstrap

这是用C/C++写死在JVM里了,JVM启动时建立的第一个classloader,负责载入核心类库(jre/lib/*.jar)。

Extension ClassLoader

由Bootstrap生成该类,parent定为null(Bootstrap不是java写的,当然只能指定null),负责载入jre/lib/ext中的类。

AppClassLoader

由Bootstrap生成该类,parent定为Extension ClassLoader,负责载入classpath(环境变量)中指定的类库。

其他

在其他一些情况下,比如事先没有加入环境变量的类库,或者从其他一些地方获取class比如网络,利用上面的classloader就不能寻找到指定类。这时候就需要扩展classloader,给定class文件的准确位置,这样java应用程序才能找到class文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值