Jvm Classloader 类加载机制

在这里插入图片描述

双亲委派

类加载是遵循双亲委派机制的,双亲委派机制是当一个类需要被加载时,加载器首先并不是自己直接加载,而是先从自己缓存中查找是否加载过,如果加载过直接返回。如果没有则上委托自己的父加载器加载,父加载器同样执行上述操作,以次类推。如果到最顶层的boostrapClassLoader也没有加载的话,将向下检查,查找并加载该类。这样一上一下的过程称为双亲委派。示意图如下:

类加载过程

为什么要使用双亲委派

安全问题。比如某人自己类库中有个类叫 java.lang.String 自定义加载时可以覆盖掉 jdk 中的 String 类,这样他可以在 String 类里动手脚。比如用户输入密码,用String存储的吧,可以在这里做一些操作记录下来密码,将造成密码泄漏。而有双亲委派,类首先去委托自己父加载器加载,java.lang.String永远都是jdk的String类,则不会出现密码泄漏的风险。
效率问题。试想一个类已经被加载了,还需要加载第二遍吗?加载一次,每次从缓存取将提高系统的效率。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大树91

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值