用户自定义类加载器及具体实现
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");
工作原理
优势
以上是关于用户自定义类加载器及具体实现的主要内容,如果未能解决你的问题,请参考以下文章