双亲委派的认识

首先JVM中有三种类加载器

Bootstrap启动类加载器

Extension扩展类加载器(ExtClassLoader

System系统类加载器(AppClassLoader

某个特定的类接到加载类的请求时候,首先将加载任务委托给父类加载器,依次递归,若是父类加载器可以完成加载,则直接返回成功;若是父类加载器无法完成加载时,才交由自己进行加载。

 

 

双亲委派的意义:

  1. 防止内存中出现重复的字节码,避免类的重复加载:AB均需要加载System类,如果采用双亲委派机制,A类加载了以后,B通过bootstrap去加载的时候,找到了已经被加载过的system类,直接返回成功,不会再次加载
  2. 防止黑客恶意篡改:如果你自己写了一个java.lang.String的类,没有双亲委派的情况下,自己加载了你自己写的这个string类,但是有双亲委派的前提下,会通过bootstrap加载到顶级父类的java核心api里的String类,你写的东西根本没有机会被加载

转载于:https://my.oschina.net/u/3869202/blog/3053159

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值