JVM学习笔记---什么是自定义类加载的流程

本文探讨了自定义类加载器的三大原因:模块隔离、动态加载与扩展加载源。通过自定义加载器,可以实现不同应用间的类隔离,如在Tomcat服务器中的应用。此外,还能按需动态加载类,支持从多种来源(如数据库、网络)加载,并能保护源码安全,防止未授权访问。自定义类加载器的实现主要涉及对`ClassLoader`的继承及重写`loadClass`或`findClass`方法。
摘要由CSDN通过智能技术生成

JVM学习笔记—什么是自定义类加载的流程

1. 为什么要自定义类加载器

  1. 隔离加载类
    1. 模块隔离,把类加载到不同的应用选中。比如tomcat这类web应用服务器,内部自定义了好几中类加载器,用于隔离web应用服务器上的不同应用程序。
  2. 修改类加载方式
    1. 除了Bootstrap加载器外,其他的加载并非一定要引入。根据实际情况在某个时间点按需进行动态加载。
  3. 扩展加载源
    1. 比如还可以从数据库、网络、或其他终端上加载
  4. 防止源码泄漏
    1. java代码容易被编译和篡改,可以进行编译加密,类加载需要自定义还原加密字节码。

2. == 自定义函数调用过程==

在这里插入图片描述

3. == 自定义类加载器实现==

  1. 实现方式:
    1. 所有用户自定义类加载器都应该继承ClassLoader类
    2. 在自定义ClassLoader的子类是,我们通常有两种做法:
      1. 重写loadClass方法(是实现双亲委派逻辑的地方,修改他会破坏双亲委派机制,不推荐)
      2. 重写findClass方法 (推荐)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值