JVM(类加载器)

一、JVM内置的类加载器

  1. BootstrapClassLoader(启动类加载器):用于加载/lib目录下的jar包和类,用C++编写的。
  2. ExtensionClassLoader(扩展类加载器):用于加载/lib/ext目录下的jar包和类,用Java编写,继承自于java.lang.ClassLoader类。
  3. AppClassLoader(启动类加载器):用于加载当前classpath下的所有jar包和类,用Java编写,继承自于java.lang.ClassLoader类。

二、双亲委派机制

双亲委派机制:当一个类加载器收到类加载请求时,会先判断该类有没有被加载过,如果被加载过,就会直接返回;反之,就会把请求传给父类加载器,直到BootstrapClassLoader(启动类加载器)处,当父类无法处理时,才会由自己来处理。

双亲委派机制的好处

  1. 避免类的重复加载,一个类被不同的类加载器加载会产生不同的类。
  2. 保证Java的核心API不被篡改。

双亲委派机制保证了Java程序的稳定运行。

不想用双亲委派机制应当如何?

首先自定义类加载器,要继承ClassLoader,要想用双亲委派机制,要重写findClass(),但想要打破双亲委派机制的话,要重写loadClass()。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值