双亲委派模型和自定义类加载器
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 其实,双亲委派模型并不复杂。自定义类加载器也不难!随便从网上搜一下就能搜出一大把结果,然后 copy 一下就能用。但是,如果每次想自定义类加载器就必须搜一遍别人的文章,然后复制,这样显然不行。可是自定义类加载器又不经常用,时间久了容易忘记。相信你经常会记不太清 loadClass 、 findClass 、 defineClass 这些函数我到底应该重写哪一个?它们主要是做什么的?本文大致分析了各个函数的流程,目的就是让你看完之后,难以忘记!或者说,延长你对自定义类加载器的记忆时间!随时随地想自定义就自定义! 1. 双亲委派模型 关于双亲委派模型,网上的资料有很多。我这里只简单的描述一下,就当是复习。 1.1 什么是双亲委派模型? 首先,先要知道什么是类加载器。简单说,类加载器就是根据指定全限定名称将 class 文件加载到 JVM 内存,转为 Class 对象。如果站在 JVM 的角度来看,只存在两种类加载器: 启动类加载器( Bootstrap ClassLoader ):由 C++ 语言实现(针对 HotSpot ),负责将存放在 <JAVA_HOME>\lib 目录或 -Xbootclasspath 参数指定的路径中的类库加载到内存中。 其他类加载器:由 Java 语言实现,继承自抽象类