为什么要自定义类加载器?

前言

在Java的日常应用和程序开发中,类的加载几乎是由引导类加载器、扩展类加载器、系统类加载器相互配合执行的,在必要时,我们还可以自定义类加载器,来定制类的加载方式

为什么要自定义类加载器

(1) 隔离加载类

在某个应用中需要使用中间件,这个中间件有自己的依赖的jar包,在同一个工程里面,如果引用多个框架的话,有可能会出现某些类的路径一样、类名也相同,这样就会出现类的冲突了,这个时候就需要做一个类的仲裁,像现在主流的容器类的框架一样,它们都会自定义类的加载器,实现不同的中间件隔离,避免类的冲突

(2)修改类的加载方式

在整个类的加载过程中,bootstrap引导类加载器是一定被使用的,用来加载系统需要的核心API,除了bootstrap引导类加载器之外,其他的类加载器也不是必须的,我们可以根据实际情况中修改类的加载方式,具体要用的时候我们再引用

(3)扩展加载源

加载的类除了可以在网络、本地物理磁盘、jar包去加载之外,我们还可以考虑通过数据库、电视机的机顶盒等等来扩展加载源

(4)防止源码泄露

当有了字节码文件或者没有反编译的手段,java代码是很容易被编译和篡改,所以,为了防止编译和篡改,我们可以对字节码文件进行加密,当我们需要运行这个字节码文件时候,我们需要解密来还原成内存中的类,而这个解密的操作,就需要自定义类的加载器来实现

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值