但是我们自定义一个类加载器加载特定路径的,避开 jvm 默认的三个类加载器的加载路径,就可以使我们的自定义 System 类被加载。
可是真的是这样吗?
为了弄清楚这个问题,我又看了下类加载。...并不会一次性加载所有的 class 文件,而是根据需要去动态加载
java 类加载器是 jre 的一部分,负责动态加载 java 类到 java 虚拟机的内存
类的唯一性由类加载器和类共同决定
还了解到系统的三种类加载器...弄清楚这些,我们可以开始验证自定义的类加载器是否可以加载我们自定义的这个System类了
自定义类加载器
新建一个 MyClassLoader 继承 ClassLoader ,并重写 loadclass...类并加载,执行 main 方法时,找不到 main 方法,所以报找不到 main 方法。...拓展线程上下文类加载器
为什么不和前面三种类加载器放在一起说呢,这个线程上下文类加载器只是一个概念,是一个成员变量,而前三种是确切存在的,是一个类,我们来看一下 Thread 的源码:
publicclass