用户自定义类加载器及具体实现

Posted super码王

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户自定义类加载器及具体实现相关的知识,希望对你有一定的参考价值。

用户自定义类加载器

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

为什么要自定义类加载器

  • 隔离加载类
  • 修改类加载的方式
  • 扩展加载源
  • 防止源码泄漏

用户自定义类加载器实现步骤

关于ClassLoader

ClassLoader类,它是一个抽象类,其后所有的类加载器都继承自ClassLoader(不包括启动类加载器)

获取ClassLoader的几种方

双亲委派机制

Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到内存生成class对象。而且加载某个类的class文件时,Java虚拟机采用的是双亲委派模式,即把请求交由父类处理,它是一种任务委派模式。

案例分析:

我们自己创建一个 java.lang.String,当我们使用String这个类的时候,是加载我们自己写的String类还是系统给我们提供的String类呢???显然是系统提供的String。

package chapter01.com.wust.yq;

public class StringTest 

    public static void main(String[] args) 
        java.lang.String s = new java.lang.String();
        System.out.println("hello");
    


工作原理

优势

以上是关于用户自定义类加载器及具体实现的主要内容,如果未能解决你的问题,请参考以下文章

节:为什么需要用户自定义类加载器以及其具体实现

节:为什么需要用户自定义类加载器以及其具体实现

节:为什么需要用户自定义类加载器以及其具体实现

JVM类加载器及Java类的生命周期

节:概述类的加载器及类加载过程

节:概述类的加载器及类加载过程