介绍完虚拟机给我们提供好的启动类加载器、扩展类加载器以及应用程序类加载器之后,接下来,咱们再来谈一谈用户自定义类加载器。

用户自定义类加载器

首先,我想说明的一点是,关于用户自定义类加载器,在本篇(即内存与垃圾回收篇)我并不会过多展开来讲解,具体的内容得等到大家真的步入下一篇(即字节码与类的加载篇)的学习中之后我才会给大家具体展开来讲解,比方说用户该怎样去自定义一个类的加载器。

而在这里,我则主要只想说明两个问题,第一个问题是什么时候我们才会需要去自定义类的加载器,第二个问题是如果真想自定义一个类的加载器,那么你觉得其简单实现步骤又会是怎样的呢。

正常来讲,在Java的日常应用程序开发中,类的加载几乎是由上述3种类加载器相互配合执行的,当然,在必要时,我们还可以去自定义类加载器,来定制类的加载方式。但我想几乎绝大部分的童鞋可能都没有怎么接触过自定义类加载器,因为在企业实际开发中你几乎是碰不到还需要你去自定义类加载器的场景的,当然,万事不绝对啊,不排除有些童鞋就接触过。

接下来,我们就来看一下在什么场景下我们才需要自定义类加载器,当然,你也可以理解成为什么我们要去自定义类加载器。

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

这里,我一共罗列出来了如下四种需要自定义类加载器的场景。

  1. 隔离加载类。
  2. 修改类的加载方式。
  3. 扩展加载源。
  4. 防止源码泄露。

如果你曾接触过自定义类加载器,那么不妨比照着上面看一下是不是有些场景你曾遇到过,又或者听说过但不是很了解。当然࿰