java类加载器和双亲委派机制

类加载器

  1. BootstrapClassLoader — 启动类记载器.
  2. ExtentionClassLoader — 扩展类加载器.
  3. AppclassLoader — 应用程序类加载器.
    AppCLassLoader父加载器是ExtentionClassLoader;
    ExtentionClassLoader父加载器为null.

双亲委派机制

  1. jvm在加载类的时候,通常是从AppClassLoader开始,他会委托他的父加载器去加载,父加载器会继续向上委派,如果当前加载器父加载器为null,则会让引导类加载器去加载,如果上层加载器加载不到则会反过来向下委派,让子加载器自己去加载.
  2. 双亲委派的优点:
    a.已经加载过的类(包名+类名相同)不会重复加载,可以防止串java自身核心类库,保证运行代码的安全性
    b.自定义加载器可以加载除核心类之外的(包名+类名相同)类,如果用自定义加载器去加载核心类如String.class,虚拟机会抛出安全异常,总的双亲委派就会更安全吧.

自定义类加载器

  1. 双亲委派实现条件:
    a.继承ClassLoader类.
    b.重写findClass()方法.
  2. 打破双亲委派实现条件:
    a.继承ClassLoader类.
    b.重写loadClass()方法.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值